messaging
Consumer Groups
Partitions are distributed across consumers in a group — enabling parallel, ordered processing
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