numinnex opened a new issue, #4417: URL: https://github.com/apache/iggy/issues/4417
Part of #3560. Split out of #3543, which shipped `LeaveGroup` (13) in #4270. ## Summary Implement KIP-345 static membership for Kafka consumer groups in the gateway. Today `group.instance.id` (JoinGroup v5+) is stored, echoed back to the leader and seeds the generated member id, but nothing else is honoured (see "Static membership is accepted, not honoured" in `gateways/kafka/docs/CONSUMER_GROUPS.md`). A returning static member gets a new member id and its join triggers a rebalance, while its previous incarnation keeps its partitions until its session expires and triggers a second rebalance. Kafka replaces the old identity with no rebalance at all. ## Scope - [ ] A JoinGroup with a known `group_instance_id` replaces the previous holder's member id without a rebalance (Kafka's `updateStaticMemberAndRebalance` path, including the leader case) - [ ] One instance id maps to at most one member at a time - [ ] `FENCED_INSTANCE_ID` (82) from `JoinGroup`, `SyncGroup` and `Heartbeat` when the member id does not hold the instance id it names, not only from `LeaveGroup` - [ ] Session expiry of a static member still evicts it and rebalances - [ ] `LeaveGroup` by instance id keeps Kafka's semantics once there is a single holder - [ ] Update `CONSUMER_GROUPS.md` and the parity table ## Acceptance criteria - [ ] Test: a static member restarts within `session.timeout.ms` and gets its partitions back with no generation bump - [ ] Test: a stale incarnation of a replaced static member is fenced with 82 on Heartbeat and SyncGroup - [ ] E2E with the Java client using `group.instance.id` (can ride on #3544) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
