KRaft Controller Quorum Explained: Voters, Observers, and kafka-metadata-quorum
The KRaft controller quorum is the small group of Kafka nodes that replicate the cluster metadata log and elect the active controller. Membership is controller.quorum.voters (static quorum) or controller.quorum.bootstrap.servers (dynamic quorum, KIP-853), and a majority of these voters must acknowledge every metadata change before it commits. Each Kafka KRaft controller is either the active leader or a hot standby, and every broker follows the same log as a non-voting observer.
Our KRaft mode guide covers the architecture. This post covers running the quorum: how elections work, how to read kafka-metadata-quorum.sh output, how static and dynamic quorums differ, and how to add or remove controllers without breaking the majority.