Although, also note that this is only necessary if you want to exactly
mirror the Java client implementation. The consumer protocol can be
implemented however you like in your library (although obviously the Java
implementation is a good reference). The only reason you'd need to match it
exactly
Oleksiy,
The join group protocol is general enough to handle multiple types of group
membership, not just consumers. This is used in Kafka Connect to form a
group of workers (which, instead of splitting topic partitions between
members splits connector tasks).
In order to make this work and
Hi Ewen,
Thanks for detailed explanation. So its basically the version of
MemberAssignment structure, not the version of the assignment strategy as I
thought. Should I use version=0 in protocol exchanges for now? (I'm
building a client in Node.js for 0.9:
Oleksiy,
Where are you specifying the version? Unless I'm missing something, the
JoinGroup protocol doesn't include versions so I'm not sure I understand
the examples you are giving. Are the version numbers included in the
per-protocol metadata?
You can see exactly how the consumer coordinator
Hi Ewen,
I specify version in ProtocolMetadata structure, as per this document:
https://cwiki.apache.org/confluence/display/KAFKA/A+Guide+To+The+Kafka+Protocol#AGuideToTheKafkaProtocol-JoinGroupResponse
---
ProtocolType => "consumer"
ProtocolName => AssignmentStrategy