...
In the current architecture, during each rebalance consumer group on broker side will assign new member id with a UUID randomly generated each time. So through restarts, the consumer uses different member ids, which means the rejoin of same consumer will always be treated as "new member". On the client side, consumer will send a JoinGroupRequest with a special UNKNOWN_MEMBER id, which also has no intention to be treated as an existing member. To make the KIP work, we need to change both client side and server side.
Proposed Changes
On client side, we add a new config called MEMBER_ID in ConsumerConfig. On consumer service init, if the MEMBER_ID config is not set, we shall use the
def generateMemberIdSuffix = UUID.randomUUID().toString
Compatibility, Deprecation, and Migration Plan
...