Elastic modified the official Python client so that its Elasticsearch database would not work with fork versions, and closed the GitHub issue for comments.
Elasticsearch is a database manager and crawl engine, often used for log analysis. The elasticsearch-py client has over 202,000 downloads and is described as the “official low-level client for Elasticsearch. Its purpose is to provide common ground for all code related to Elasticsearch in Python; for this reason, it tries to be without opinion very extensible. “
It is also used as a library by Elasticsearch DSL, a high-level library for performing Elasticsearch queries.
Elasticsearch was an open source product, but in January changed its license in response to what the company saw as unfair use by public cloud platforms, AWS in particular. AWS forged Elasticsearch, before the license change, to create Open Distro for Elasticsearch, which then evolved into OpenSearch, version 1.0 released last month. The victims of this corporate battle include open source developers who contributed to Elasticsearch but now feel left behind.
The developers have now opted for a discrete modification of the elasticsearch-py source, which verifies that the database is the product of Elastic and not a fork. “If there is no X-Elastic-Product HTTP header in the response or if the value of the X-Elastic-Product HTTP header is not Elasticsearch, generate an error”, is one of the changes noted.
“It’s disappointing to see this 🙁 You are forcing us as spectators in a battle to choose our side,” said Lars Holm Nielsen of CERN, product manager for an open source project called Invenio used for management of research data. “We are developing an Open Source Product that could easily work with both Elasticsearch or OpenSearch, and then users can choose for themselves whether they want Elasticsearch or OpenSearch… This and other Elastic behaviors don’t tell me really give no confidence in Elastic and what you might do in the future. And don’t blame all of Amazon – you already changed the server license, you didn’t have to make that move. “
Philip Krauss, senior director of engineering at Elastic, responded, “Amazon OpenSearch is a different product. And while there is some common history, there are already many differences that cause real confusion and problems.
Another comment on the issue has been deleted and the thread is now locked.
The same happened with the .NET connector for Elasticsearch, resulting in error messages such as “The client noticed that the server is not a supported distribution of Elasticsearch.” When users complained, Steve Gordon, Elastic senior software engineer, said, “The recommendation is to upgrade to the latest Elasticsearch default distribution, which is free to use under the Elastic v2 license… client and server combinations. In the supported configurations, the change is not irreversible. The intention here is to make this incompatibility explicit by failing quickly to avoid consumers mistakenly assuming that they are running in a supported configuration that is not tested and may not work as expected. “
Another change is that the Java client for Elasticsearch has upgraded to the Elastic license.
In the OpenSearch community, this topic has caused some anxiety. “What should opensearch do about all the connectors and bindings for the various programming languages currently available?” Many of them already incorporate anti-competitive measures, as has been reported, ”said one user.
Licensing is a different matter from product verification. Elastic said, “Our client libraries remain licensed under the Apache 2.0 license, with the exception of our Java High Level Rest (Java HLRC) client. Java HLRC depends on the core of Elasticsearch, and therefore this client library will be licensed under the Elastic license. Over time, we will eliminate this dependency and move Java HLRC to be licensed under the Apache 2.0 license. “
Licensing these clients under Apache 2.0 (as is the case with Python and .NET clients) is not sufficient for use with OpenSearch if the code blocks the connection, although this does mean that clients can easily be removed. forked and modified.
Elastic may be hoping that the momentum behind the official release, as well as its own contributions, will be enough that the open source alternative can’t keep up. ®