My thoughts about this issue are: "upgrade to the minimum client which allows all our desired functionality and has compatibility with subsequent versions, and check if client libraries are interchangeable".
For example, just answer questions like:
- Is HBase client 0.92.0 compatible with server 0.94.4?
- Can HBase client 0.92.0 be substituted with client jar 0.94.4?
- Is HBase client 0.92.0 compatible with server 0.94.7?
- Can HBase client jar 0.92.0 be substituted with client jar 0.94.7?
- Can Avro 1.5.3 be substituted with jar Avro 1.7?
In this way we could assure it will work with a range of versions just changing the dependence. A detail is that, for example, we would not have the last functionalities from HBase client 0.94.7, but this does not matter since we (by definition) don't use them (just for example, functionalities up to 0.92.0).