Question about Transport Client Compatibility with Elasticsearch 8.x

According to the Elasticsearch documentation, the Java client version 7.17 should be forward-compatible with 8.x clusters.

We are currently using the Transport Client, not the High-Level REST Client. We’re aware that the Transport Client is deprecated and that we’ll need to migrate to the REST client eventually.

However, we’re considering upgrading our Elasticsearch cluster to version 8.x before switching the client. The key question is:

Will Elasticsearch 8.x still accept connections from the Transport Client (7.17 Java), or has support been entirely removed on the server side as well?

We couldn't find a definitive answer in the docs. Has anyone done this migration in two steps:

  1. Upgrade the cluster to 8.x
  2. Then migrate from the Transport Client to the REST client?

Any insight would be appreciated!

Hi Nick,

The transport client no longer works in 8.x. The High-Level REST Client (HLRC) is also no longer supported. You should:

  1. Migrate your client code to a 7.x version of the official Java client. This'll be the biggest task since the APIs are rather different. But you can do it piecemeal, using both clients in parallel for a while.
  2. Upgrade your cluster to 8.x. The 7.x Java client will continue to work by using REST compatibility.
  3. Upgrade your client code to an 8.x version of the Java client. This shouldn't be a huge leap from the 7.x client, the APIs should match up pretty closely.

(and then ideally upgrade the cluster to 9.x and then upgrade your client code to a 9.x version, but you can do that in a more leisurely fashion)

3 Likes

Thank you !