Consumer Group

Problem

A stream contains millions of events. You start ten instances of the same processing application. You don't want every instance independently processing every event. You want them to share the work.

Solution — Consumer Group

Consumers join one logical group.
Event stream
   ↓
Consumer Group
→ Worker A
→ Worker B
└→ Worker C
Work is distributed among members according to the messaging system's model. Azure Event Hubs includes a $Default consumer group; separate groups read the same stream independently. Azure Service Bus uses competing consumers on a queue or subscription: workers share messages, with Peek-Lock reserving each message for one worker during processing.
Core idea: consumer groups let multiple instances cooperate as one logical consumer.