Hi, Xiaochuan, I am relaying your question to our in-house Kafka expert to confirm. But as far as I can tell from the description, the main breaking changes are in the KStreams API. Samza only uses the standard Kafka consumer/producer APIs now and should not be affected.
I would recommend to give it a try in your question 1. As for your question 2, are you referring to a) binding a Kafka 0.10.0.0 client library with Samza 0.13.1? Or b) running Samza 0.13.1 against Kafka broker version 0.10.0.0? If you are referring to a), from the commit history, there is no source code level changes when we upgrade the dependency from Kafka 0.10.0.1 to 0.10.1.1 in Samza 0.13.1. If you want to make sure that works, you can try to downgrade the Kafka version in your build environment to 0.10.0.0 and build your app to see whether it breaks the build. If the build passes, the client should work w/ Samza 0.13.1, unless Kafka client has an API that changes runtime behavior between 0.10.0.1 and 0.10.1.1. If you are referring to b), it is not guaranteed that the higher version of Kafka client library will work with an older version of Kafka broker. However, Samza has been very conservative in the usage of new features in Kafka client library. Hence, you would have a higher chance of success to run Samza 0.13.1 against Kafka 0.10.0 brokers. Unfortunately, we have not test all the above combinations internally. I would wait for the confirmation from our Kafka expert before I can give you a definite answer. Thanks! -Yi