0%

Kafka cluster networking

graph TB
    subgraph "Kafka Cluster"
        Broker1["Broker 1"]
        Broker2["Broker 2"]
        Broker3["Broker 3"]
    end

    subgraph "Topic: my-topic (3 Partitions)"
        P0["Partition 0"]
        P1["Partition 1"]
        P2["Partition 2"]
    end

    P0 --> LeaderP0["Leader (Broker 1)"]
    P0 --> FollowerP0_B2["Follower (Broker 2)"]
    P0 --> FollowerP0_B3["Follower (Broker 3)"]

    P1 --> LeaderP1["Leader (Broker 2)"]
    P1 --> FollowerP1_B3["Follower (Broker 3)"]
    P1 --> FollowerP1_B1["Follower (Broker 1)"]

    P2 --> LeaderP2["Leader (Broker 3)"]
    P2 --> FollowerP2_B1["Follower (Broker 1)"]
    P2 --> FollowerP2_B2["Follower (Broker 2)"]

    Producer["Producer"] -->|Write to Leader| LeaderP0
    Producer -->|Write to Leader| LeaderP1
    Producer -->|Write to Leader| LeaderP2

    ConsumerGroup1["Consumer Group 1"] -->|Consume from Partition 0| LeaderP0
    ConsumerGroup1 -->|Consume from Partition 1| LeaderP1
    ConsumerGroup1 -->|Consume from Partition 2| LeaderP2

    ConsumerGroup2["Consumer Group 2"] -->|Consume from Partition 0| LeaderP0
    ConsumerGroup2 -->|Consume from Partition 1| LeaderP1
    ConsumerGroup2 -->|Consume from Partition 2| LeaderP2

    Zookeeper["ZooKeeper / KRaft"] -->|Manage Metadata & Leader Election| Broker1
    Zookeeper --> Broker2
    Zookeeper --> Broker3