Kafka has an architecture that differs significantly from other messaging systems. Kafka is a peer to peer system (each node in a cluster has the same role) in which each node is called a broker. The brokers coordinate their actions with the help of a ZooKeeper ensemble. The Kafka metadata managed by the ZooKeeper ensemble is mentioned in the section Sharing ZooKeeper between Storm and Kafka:
![](https://static.packt-cdn.com/products/9781787125636/graphics/assets/d4745f3f-9f5b-4d1e-a1cb-bf6113d2c368.png)
Figure 8.1: A Kafka cluster
The following are the important components of Kafka: