Hi,
 
as a user I find this concept interesting, but not important enough. I just 
want to share my personal thoughts, potentially leaning myself somewhat out of 
the window, that came to my mind during reading:
 
- I think it is of utmost importance for the Kafka project to continue the good 
work on easing and really securing the upgrading of the broker version via 
rolling upgrade. It is really cool for users when they can rely on that, 
allowing for continuous tech refresh, even on brokers with really large and/or 
really many partitions. I would always prefer this to stay in front.
 
- Secondly, I, as most users, like a clear, easy to understand, yet powerful 
API contract together with producer/consumer configuration, including also 
aspects such as load-balancing and availability (consumer groups and 
alternative solutions via external partitioning and schedulers/supervisors 
respectively etc.).
 
- Third, I find it important for the Kafka community to continue support for 
Scala-based APIs on the client side with the same devotion as seen in the 
support for the Java-based Kafka Streams API.
 
- Fourth, I need production readiness features.
 
Only after all these, I would look at a possibility to use a new client 
together with an old broker. Even though the concept seems to be sound on first 
read, I am somewhat afraid of the additional complexity, resulting 
complications and thus additional work for people. Think of database drivers. 
It can potentially become really complicated to support feature handshaking. 
Also, runtime exceptions that could have been avoided by a clear and simple 
policy would not be appealing. I really wonder if there are actually enough 
users who would need the ability to use a newer client with an older broker, to 
justify the increase in complexity.
 
I would agree however if someone said that it should better be possible to use 
two different client versions within one JVM, in order to talk to several 
brokers of different versions, which could become easier to achieve at the 
client side under Java 9 (Jigsaw).
 
Kind Regards
Sven
 

Reply via email to