Versions Compared

Key

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

...

 

Code Block
JoinGroupRequest => GroupId GroupType SessionTimeout MemberId SupportedProtocols
  GroupId                 => String
  GroupType               => String
  SessionTimeout          => int32
  MemberId                => String
  GroupProtocols          => [Protocol ProtocolMetadata]
    Protocol              => String
    ProtocolMetadata      => bytes

 

JoinGroup Response

The response is similarly modified to remove the fields specific to consumer group management. The coordinator is responsible for analyzing the supported protocols from each group member and choosing one which all members support, which is then transmitted to group members in the join group response. Note that the metadata from each group member for the chosen protocol is returned in the response to all members. This is to allow each member to propagate some local information (such as topic subscriptions) to the entire group. The generation id, as before, is incremented on every successful iteration of the join group protocol.

The basic idea behind the coordinator's protocol selection algorithm is to consider the protocols supported by all members in terms of the preference (as indicated by the position in the list). This means that if all members list protocol "a" before protocol "b," then the coordinator will choose "a." If there is no agreement in terms of preference among the supported protocols which all members support, then one is chosen randomly.

...