What is ZooKeeper's role in Kafka?

Answer

ZooKeeper was Kafka's metadata management system for many years, responsible for: Broker registration: tracking which brokers are alive. Controller election: selecting which broker acts as the cluster controller. Topic and partition metadata: storing topic configurations and partition leader assignments. Consumer group coordination: (in older Kafka versions) tracking consumer offsets. ZooKeeper was a dependency that added operational complexity and scaling limitations. Starting with Kafka 2.8 (preview) and stable in Kafka 3.3+, KRaft (Kafka Raft) replaces ZooKeeper — Kafka manages its own metadata using a Raft-based consensus protocol internally. KRaft dramatically simplifies deployment (one system to manage), improves startup time, and enables clusters with millions of partitions (ZooKeeper struggled beyond ~200K).