NodeClient and TransportClient backward compatibility with older server versions


#1

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 -- is this still valid?)

Your Java Client documentation 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?


(system) #2