conduktor.io ↗

Kafka DescribeCluster Response Wire Format v2 — Binary Protocol Layout

What is DescribeCluster?

Returns the authoritative list of brokers, the active controller, and cluster-level authorized operations via AdminClient.describeCluster(). Unlike Metadata, this can filter by endpoint type (broker vs controller), which matters in KRaft mode where controllers may not be brokers.

Related Errors

MISMATCHED_ENDPOINT_TYPE · UNSUPPORTED_ENDPOINT_TYPE

Wire Diagram

Response Header · flexible
message_size int32 · 4B
correlation_id int32 · 4B
tagged var
DescribeClusterResponse v2
ThrottleTimeMs int32 · 4B
ErrorCode int16 · 2B
ErrorMessage? string (compact)
EndpointType int8 · 1B
ClusterId string (compact)
ControllerId int32 · 4B
Brokers array
ClusterAuthorizedOperations int32 · 4B
tagged var
BrokerId int32 · 4B
Host string (compact)
Port int32 · 4B
Rack? string (compact)
IsFenced bool · 1B
tagged var

Schema & Example

Schema
{
  "ThrottleTimeMs": int32,
  "ErrorCode": int16,
  "ErrorMessage": string?,
  "EndpointType": int8,
  "ClusterId": string,
  "ControllerId": int32,
  "Brokers": [{
      "BrokerId": int32,
      "Host": string,
      "Port": int32,
      "Rack": string?,
      "IsFenced": bool
  }],
  "ClusterAuthorizedOperations": int32
}
Example
{
  "ThrottleTimeMs": 0,
  "ErrorCode": 0,
  "ErrorMessage": "NETWORK_EXCEPTION",
  "EndpointType": 1,
  "ClusterId": "dQw4w9WgXcQ",
  "ControllerId": 0,
  "Brokers": [{
      "BrokerId": 1,
      "Host": "broker-1.kafka.local",
      "Port": 9092,
      "Rack": "us-east-1a",
      "IsFenced": true
  }],
  "ClusterAuthorizedOperations": 2
}