Versions Compared

Key

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

...

In the current consumer protocol, the field `member.id` is assigned by broker to track group member status. A new consumer joins the group with `member.id` field set as UNKNOWN_MEMBER_ID (empty string), since it needs to receive the identity assignment from broker first. For request with unknown member id, broker will blindly accept the new join group request, store the member metadata and return a UUID to consumer. The edge case is that if initial join group request failskeeps failing due to connection timeout, or the consumer keeps restarting, there will be many leftover MemberMetadata accumulated MemberMetadata info within group metadata cache which will eventually burst broker memory. The detection and fencing of invalid join group request is crucial for broker stability.

This KIP is a parallel work with KIP-389 which tries to enforce hard cap on the group metadata size, and an important compliment for complement for KIP-345 which introduces static membership.

Public Interfaces

We will introduce a new join group error type called MEMBER_ID_REQUIRED which will be triggered when broker meets join group request with unknown member id:

...