I could not find the answer on stackoverflow nor in their documentation. Is there a compatibility matrix between the client and the cluster? I want to migrate the cluster side from 6 to 7, and according to the documentation I should migrate the client last. But what guarantees to I have that the client 6 will work with a cluster 7?
I guess there is no standard way of doing this and it all depends on specific use cases and how you want to upgrade your systems in MySQL changing schema also requires the downtime and most of the applications either have dedicated downtime or some secondary databases during the migration to avoid/reduce the downtime.
Most common way to handle upgrades which I have seen in case of elastic is to use the aliases.
Instead of directly calling index, you all it using the alias and behind the scene using reindex API build a ES 7 index from ES 6 index, this will be very fast as document is not build from MySQL, but requires source to be enabled.
In you application code, you must have both the clients and a switch to query against which cluster and once index is created in ES 7, just change the alias to ES 7 index and switch to ES 7 client in your application to start serving the traffic from ES 7 cluster with its client.