Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

KafkaConsumer:
 
Subscription => TopicList UserData AssignedPartitions
   TopicList               => List<String>
   UserData                => Bytes  
   OwnedPartitions         => List<String, List<Int32>>
   Generation              => Int32   <--- new field

 
Assignment => AssignedPartitions UserData
   OwnedPartitions         => List<String, List<Int32>>
   UserData                => Bytes


So, during the joinGroup request, we'll include the generation and send to the group coordinator. Later, when the consumer lead receive all the subscription info from all consumers, it'll do the assignment based on the "ownedPartitions" and "generation" info. Also, after the assignment, we can also leverage the "ownedPartitions" and "generation" info to validate the assignments.

Compatibility, Deprecation, and Migration Plan

...