Versions Compared

Key

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

...

On server side, broker will keep handling join group request <= v3 as before. If the protocol version is upgraded to v4 and the member id is set, the broker will use the member id specified in the join group request.  Otherwise broker will use the client id plus random generated member id suffix as the member id, same as now. The change will be applied in addMemberAndRebalance. 

If the broker version is not the latest (< v4), the join group request shall be downgraded to v3.

We shall also bump the join group response version to v4.

...

In the join request v4, it is user's responsibility to assign unique member id for each consumers. This could be in service discovery hostname, unique IP address, etc. The downside is that if user configured the member id wrongly, there could be multiple consumers with the same member id, which invalidates the consumption balance and triggers unpredictable behaviors. We could think of basic validation here, but , for instance we could pass along the host:port information from KafkaApis to the GroupCoordinator interface. However, considering this is an advanced config, we will only rely on user providing unique member id in this KIP. 

...