Why had Elastic released a complete new API with 8.0?

Why had Elastic released a complete new API with 8.0?
High Level API Client was working well. Why replacing it with Elasticsearch Java API Client?

Thanks - Enomine

Mainly because the old client was using internal classes from the Elasticsearch server and was coupled with it. As a consequence:

  • the "client jar" was as fat as the server
  • it was depending on Lucene which was sometimes leading to jar conflicts
  • you must have the same version between the server and the client
  • was harder to maintain as there was no real contract for the APIs

The new one is coming with so many benefits. To name a few:

  • you can use your business objects directly instead of doing the serialization manually and you can directly get your business objects from the responses.
  • compatibility with reactive patterns
  • fluent API
  • less risks of breaking the client when a refactoring is happening on the server side
2 Likes

Thanks for that information.

Here i have an additional question...

-> Elasticsearch Version 7 had a "Java REST Client", which included a "Java Low Level REST Client" as well as a "Java High Level REST Client".

-> Elasticsearch Version 8 has a "Elasticsearch Java API Client", which includes a "Java Low Level REST Client". Elasticsearch Java API Client seem to be the counterpart of the Java High Level REST Client.

Question:

Is the Java Low Level REST Client in ESJAC technicaly the same (is it a copy of the same code) as the Java Low Level REST Client from Java REST Client? Or was it rewritten, too?

Thanks - Enomine

The Low Level Client is the same for both High Level clients.

1 Like

Thanks - Enomine

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.