# NodeClient and TransportClient backward compatibility with older server versions

**URL:** <https://discuss.elastic.co/t/nodeclient-and-transportclient-backward-compatibility-with-older-server-versions/26323>\
**Category:** Elasticsearch\
**Created:** [July 27, 2015, 6:28am UTC](https://discuss.elastic.co/t/nodeclient-and-transportclient-backward-compatibility-with-older-server-versions/26323 "2015-07-27T06:28:25Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![dloeng](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dloeng/32/3860_2.png) [@dloeng](https://discuss.elastic.co/u/dloeng)\
**Post date:** [July 27, 2015, 6:28am UTC](https://discuss.elastic.co/t/nodeclient-and-transportclient-backward-compatibility-with-older-server-versions/26323/1 "2015-07-27T06:28:25Z")

</div>

I've found 30 odd tests in the org.elasticsearch.bwcompat.\* package that can be used to test backwards compatibility of the java client to older server versions (which is great by the way). All these tests pass when pointing a 1.7 client against a server with 1.6, 1.5, 1.4, 1.3, 1.2, 1.1 and even 1.0.3.

Can I infer from these tests compatibility _guarantees_ of the java client with a server across _minor_ versions? (I found [this from Shay in a post 2 years ago](https://discuss.elastic.co/t/api-backward-compatibility-policy/8853/3) -- is this still valid?)

Your [Java Client documentation](https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/client.html) has this encouragement:

> Please note that you are encouraged to use the same version on client and cluster sides.

Do you say _same version_ here because there is no explicit commitment for backwards compatibility among _minor versions_?

Is the backward compatibility picture different for `NodeClient` and `TransportClient`?

Finally, this comment in `NettyTransport` mentions forward compatibility:

```
// we pick the smallest of the 2, to support both backward and forward compatibility
// note, this is the only place we need to do this, since from here on, we use the serialized version
// as the version to use also when the node receiving this request will send the response with
Version version = Version.smallest(this.version, node.version());

```

Any comment regarding forwards compatibility within a minor version?

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 5, 2017, 11:58pm UTC](https://discuss.elastic.co/t/nodeclient-and-transportclient-backward-compatibility-with-older-server-versions/26323/2 "2017-07-05T23:58:53Z")

</div>


