Modern Apache Kafka clusters use KRaft for metadata management; controller and broker roles can be separate or combined. Capacity depends on retention, partitions, replication factor, message size and disk/network throughput, not event rate alone.
Current KRaft architecture manages cluster metadata through the controller quorum and does not require ZooKeeper for new KRaft clusters. In production, controller quorum and broker capacity should be considered separately; combined mode is better suited to smaller/test deployments.
Producers write to topic partitions, brokers replicate according to the replication factor and consumer groups divide partitions among members.
Controllers manage metadata quorum while brokers handle data traffic and partition IO. Separating roles in larger production clusters improves resource isolation.
Raw ingest multiplied by retention is not enough; include replicas, segment overhead and growth headroom.
Binary paths depend on installation; adapt the bootstrap server to your cluster.
kafka-metadata-quorum.sh --bootstrap-server localhost:9092 describe --statuskafka-topics.sh --bootstrap-server localhost:9092 --listkafka-topics.sh --bootstrap-server localhost:9092 --describe --topic eventskafka-consumer-groups.sh --bootstrap-server localhost:9092 --all-groups --describeAdding brokers may not automatically rebalance partitions evenly; plan partition reassignment and client capacity separately.
It manages Kafka cluster metadata using a Raft-based controller quorum, removing ZooKeeper dependency.
No, but fast storage throughput and latency benefit heavy log writes, retention and replication workloads.
It depends on throughput, consumer parallelism, ordering and growth; there is no universal number.
Share daily events, message size, retention, replication factor and consumer count; we can design broker/controller topology.