Will Java built with Elasticsearch 5.2.2 libraries work in Elasticsearch 5.5.0/XPACK

I have built some NiFI custom processors using java libraries for Elasticsearch 5.2.2 and X-Pack with a maven build, which worked fine.
We just recently updated to Elasticsearch 5.5.0 with X-Pack 5.5.0 but the Elasticsearch 5.5.0 & X-Pack java libraries are unavailable within our corporate maven repository (which I have no control over and not allowed to pull from outside maven repositories).

Is the Elasticsearch/X-Pack 5.5.0 system backwards compatible when using the Elasticsearch/X-Pack 5.2.2 java libraries?

If you are using the transport client, the answer is no, or at least there are no guarantees. There is more explanation in the "Backwards compatibility" section of this blog post: https://www.elastic.co/blog/state-of-the-official-elasticsearch-java-clients

When using a transport client with a different server version you might be lucky, you might not. In particular, I know that if anyone has ever created an ML job on your 5.5 cluster (even if they later deleted it) then the 5.2 transport client won't work with it. If nobody has ever created an ML job on the 5.5 cluster then things might work OK, but it would obviously be very dangerous to rely on this because someone could accidentally break compatibility at any time simply by giving ML a try.

For best backwards/forwards compatibility we recommend using the REST API. This is made easier using the high level Java REST client released with version 5.6. (I understand this doesn't help you right now, but it shows things will get easier in the future.)

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