conduktor.io ↗

Kafka SyncGroup Request Wire Format v2 — Binary Protocol Layout

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

Related Errors

COORDINATOR_NOT_AVAILABLE · FENCED_INSTANCE_ID · GROUP_AUTHORIZATION_FAILED · INCONSISTENT_GROUP_PROTOCOL · INVALID_GROUP_ID · REBALANCE_IN_PROGRESS · UNKNOWN_MEMBER_ID

Wire Diagram

Request Header
message_size int32 · 4B
api_key int16 · 2B
api_version int16 · 2B
correlation_id int32 · 4B
client_id string
SyncGroupRequest v2
GroupId string
GenerationId int32 · 4B
MemberId string
Assignments array
MemberId string
Assignment bytes

Schema & Example

Schema
{
  "GroupId": string,
  "GenerationId": int32,
  "MemberId": string,
  "Assignments": [{
      "MemberId": string,
      "Assignment": bytes
  }]
}
Example
{
  "GroupId": "order-processors",
  "GenerationId": 5,
  "MemberId": "consumer-1-abc123",
  "Assignments": [{
      "MemberId": "consumer-1-abc123",
      "Assignment": "<assignment>"
  }]
}