Partitions6
Consumers3
Total Messages0
Partitions/Consumer2.0
// partition → consumer assignment (RangeAssignor)
P0
C1
P1
C2
P2
C3
P3
C1
P4
C2
P5
C3
C1
owns: [P0, P3]
0
messages
C2
owns: [P1, P4]
0
messages
C3
owns: [P2, P5]
0
messages

// event log

No events yet.

// how it works

  • Each partition assigned to exactly one consumer
  • Assignment: partition % consumerCount (round-robin)
  • Adding/removing consumers triggers rebalance
  • Max useful consumers = partition count

// trade-offs

  • Horizontal scaling of consumption
  • Order preserved within each partition
  • Rebalance causes brief processing pause
  • Extra consumers beyond partition count sit idle