conduktor.io ↗

Kafka DescribeQuorum Response Wire Format v1 — Binary Protocol Layout

What is DescribeQuorum?

Shows KRaft controller quorum health via kafka-metadata-quorum.sh --describe. The lagOffset per voter reveals how far behind each follower controller is from the leader. A voter with high lag and not in the ISR may be unable to participate in elections.

Wire Diagram

Response Header · flexible
message_size int32 · 4B
correlation_id int32 · 4B
tagged var
DescribeQuorumResponse v1
ErrorCode int16 · 2B
Topics array
tagged var
TopicName string (compact)
Partitions array
tagged var
PartitionIndex int32 · 4B
ErrorCode int16 · 2B
LeaderId int32 · 4B
LeaderEpoch int32 · 4B
HighWatermark int64 · 8B
CurrentVoters array
Observers array
tagged var
ReplicaId int32 · 4B
LogEndOffset int64 · 8B
LastFetchTimestamp int64 · 8B
LastCaughtUpTimestamp int64 · 8B
tagged var
ReplicaId int32 · 4B
LogEndOffset int64 · 8B
LastFetchTimestamp int64 · 8B
LastCaughtUpTimestamp int64 · 8B
tagged var

Schema & Example

Schema
{
  "ErrorCode": int16,
  "Topics": [{
      "TopicName": string,
      "Partitions": [{
          "PartitionIndex": int32,
          "ErrorCode": int16,
          "LeaderId": int32,
          "LeaderEpoch": int32,
          "HighWatermark": int64,
          "CurrentVoters": [{
              "ReplicaId": int32,
              "LogEndOffset": int64,
              "LastFetchTimestamp": int64,
              "LastCaughtUpTimestamp": int64
          }],
          "Observers": [{
              "ReplicaId": int32,
              "LogEndOffset": int64,
              "LastFetchTimestamp": int64,
              "LastCaughtUpTimestamp": int64
          }]
      }]
  }]
}
Example
{
  "ErrorCode": 0,
  "Topics": [{
      "TopicName": "orders",
      "Partitions": [{
          "PartitionIndex": 3,
          "ErrorCode": 0,
          "LeaderId": 1,
          "LeaderEpoch": 17,
          "HighWatermark": 284729,
          "CurrentVoters": [{
              "ReplicaId": -1,
              "LogEndOffset": 150382,
              "LastFetchTimestamp": 0,
              "LastCaughtUpTimestamp": 0
          }],
          "Observers": [{
              "ReplicaId": -1,
              "LogEndOffset": 150382,
              "LastFetchTimestamp": 0,
              "LastCaughtUpTimestamp": 0
          }]
      }]
  }]
}