In Kafka Streams we need to dynamically create or update those internal topics (i.e. repartition topics) upon rebalance, inside InternalTopicManager which is triggered by StreamPartitionAssignor. Currently we are using ZkClient to talk to ZK directly for such actions.
With create and delete topics request merged in by Grant Henke as part of KIP-4, we should now be able to remove the ZkClient dependency and directly use these requests.
2. Consumer Reblance Protocol. https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Client-side+Assignment+Proposal