What is SyncGroup?
After JoinGroup, the elected leader pushes computed assignments via SyncGroup, and every member waits for the response to learn its own assignment. A rebalance that completes JoinGroup but hangs here usually means the leader is taking too long to compute assignments (large groups, slow custom assignors).
| Version | Kafka | Changes |
|---|---|---|
| SyncGroupRequest | ||
| v0 | 2.2 | + GroupId string+ GenerationId int32+ MemberId string+ Assignments []SyncGroupRequestAssignment+ MemberId string+ Assignment bytes |
| v1 | 2.2 | are the same as version 0. Starting from version 3, we add a new field called groupInstanceId to indicate member identity across restarts. |
| v2 | 2.2 | are the same as version 0. Starting from version 3, we add a new field called groupInstanceId to indicate member identity across restarts. |
| v3 | 2.3 | + GroupInstanceId string |
| v4 | 2.4 | ~ Flexible encoding enabled FLEXIBLE is the first flexible version. Starting from version 5, the client sends the Protocol Type and the Protocol Name to the broker (KIP-559). The broker will reject the request if they are inconsistent with the Type and Name known by the broker. |
| v5 | 2.5 | + ProtocolType string+ ProtocolName string |
| SyncGroupResponse | ||
| v0 | 2.2 | + ErrorCode int16+ Assignment bytes |
| v1 | 2.2 | + ThrottleTimeMs int32adds throttle time. |
| v2 | 2.2 | on quota violation, brokers send out responses before throttling. Starting from version 3, syncGroupRequest supports a new field called groupInstanceId to indicate member identity across restarts. |
| v3 | 2.3 | No changes |
| v4 | 2.4 | ~ Flexible encoding enabled FLEXIBLE is the first flexible version. Starting from version 5, the broker sends back the Protocol Type and the Protocol Name to the client (KIP-559). |
| v5 | 2.5 | + ProtocolType string+ ProtocolName string |