0

I've found out that it is very uncommon to choose a client version that is not the same as the server's version (for example in HBase client - server’s version compatibility).

On the other hand, I've got an answer about Camel compatibility that had been mentioning the Camel-HBase jar that I can find a fit version of the client's jar through downgrading it (for example https://mvnrepository.com/artifact/org.apache.camel/camel-hbase/3.1.0 for an old HBase version). But this answer also said that it is a bad thing to do (Can Apache Camel integrate with an old HBase version?). I wonder what is the solution if there is no such option for me to upgrade the HBase server (since it's not mine). Why choosing a lower Camel component (such as Camel-HBase) version is bad?

It's impossible to work otherwise since it will demand every integrated technology to be the most upgraded.

user7551211
  • 649
  • 1
  • 6
  • 25

1 Answers1

2

Sorry, obviously my answer you mention was not clear enough.

You absolutely can use an older Camel version whose dependencies match your specific Hbase-client version need.

But this decision hat some drawbacks:

  • You cannot upgrade your Camel application (version lock-in)
  • You cannot use another Camel component in the same application that has a more recent version because mixing Camel component versions (eg. camel-core 3.9.0 and camel-hbase 3.1.0) leads to lots of problems

The consequence of these points is that you probably have to "isolate" your Hbase integration in a Camel application that uses an old, "freezed" Camel version.

"Isolate" because as soon as you want to do something else that needs a newer Camel version, you have to build a new application that communicates with your hbase-integration through an API.

I hope, this answer makes more sense for you.

About your final statement

It's impossible to work otherwise since it will demand every integrated technology to be the most upgraded.

There are a lot of technologies that offer a much wider compatibility. Messaging clients like Kafka or ActiveMQ are wire-compatible with older server versions.

burki
  • 6,741
  • 1
  • 15
  • 31
  • But practically, on every Camel version update of mine, I’m expected to update all of my integrated technologies? If I have for example integration with 6 Databases, am I expected to upgrade all of them for every Camel upgrade? – user7551211 Aug 23 '21 at 08:10
  • 2
    No, because the JDBC API is still the same, no matter what Camel version you use. But your comment is true for technologies where the client is not wire-compatible with older server versions. Therefore you have to isolate such "legacy-integrations" in their own Camel applications. – burki Aug 23 '21 at 08:39