conduktor.io ↗

Kafka SyncGroup Changelog — Protocol Version History

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).

VersionKafkaChanges
SyncGroupRequest
v02.2
+ GroupId string
+ GenerationId int32
+ MemberId string
+ Assignments []SyncGroupRequestAssignment
+ MemberId string
+ Assignment bytes
v12.2
are the same as version 0. Starting from version 3, we add a new field called groupInstanceId to indicate member identity across restarts.
v22.2
are the same as version 0. Starting from version 3, we add a new field called groupInstanceId to indicate member identity across restarts.
v32.3
+ GroupInstanceId string
v42.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.
v52.5
+ ProtocolType string
+ ProtocolName string
SyncGroupResponse
v02.2
+ ErrorCode int16
+ Assignment bytes
v12.2
+ ThrottleTimeMs int32
adds throttle time.
v22.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.
v32.3No changes
v42.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).
v52.5
+ ProtocolType string
+ ProtocolName string