conduktor.io ↗

Kafka BrokerRegistration Changelog — Protocol Version History

What is BrokerRegistration?

A broker sends this on startup in KRaft mode to register with the active controller. The incarnation UUID changes on every restart, letting the controller distinguish a restart from a slow broker and prevent two instances of the same broker ID from both being active.

VersionKafkaChanges
BrokerRegistrationRequest
v02.8
+ BrokerId int32
+ ClusterId string
+ IncarnationId uuid
+ Listeners []Listener
+ Name string
+ Host string
+ Port uint16
+ SecurityProtocol int16
+ Features []Feature
+ Name string
+ MinSupportedVersion int16
+ MaxSupportedVersion int16
+ Rack string
~ Flexible encoding enabled FLEXIBLE
v13.4
+ IsMigratingZkBroker bool
adds Zk broker epoch to the request if the broker is migrating from Zk mode to KRaft mode.
v23.7
+ LogDirs []uuid
adds LogDirs for KIP-858
v33.7
+ PreviousBrokerEpoch int64
adds the PreviousBrokerEpoch for the KIP-966
v43.9
fixes KAFKA-17011, which blocked SupportedFeatures.MinVersion in the response from being 0.
v5
+ CordonedLogDirs []uuid
adds the CordonedLogDirs flexible field
BrokerRegistrationResponse
v02.8
+ ThrottleTimeMs int32
+ ErrorCode int16
+ BrokerEpoch int64
~ Flexible encoding enabled FLEXIBLE
v13.4
adds Zk broker epoch to the request if the broker is migrating from Zk mode to KRaft mode.
v23.7
adds the PreviousBrokerEpoch to the request for the KIP-966
v33.7
is the same as version 2 (new field in request).
v43.9
is the same as version 2 (new field in request).
v5
is the same as version 2 (new field in request).