Please just help me clarify this.
- When processing events from an Azure Event Hub, and creating a EventProcessorHost using a ConsumerGroupName X. If I do this on multiple processes (not threads), and I create multiple EventProcessorHost all with ConsumerGroupName X. Will they then read from the same partition and thus get the same event multiple times (in a racing condition situation)?
- When processing events using a ConsumerGroupName X and another ConsumerGroupName Y, do both ConsumerGroups get all the events or will they each only get events from a certain partition?
- When processing events in the ProcessEventsAsync of an IEventProcessor. What does await context.CheckpointAsync(); actually do? Does it set the Checkpoint only for the ConsumerGroup or is that a global setting for the EventHub so that those events will never be looked at again. Is the context here a leased partition?
EDIT: OK so I've made some progress (correct me if I'm wrong):
- Each Consumer will get all the messages.
- Leases are assigned an EventProcessorHost so it needs a unique name, so the consumer group name is not really relevant here.
- Still not 100% certain on context.CheckpointAsync, but I believe it is just for the ConsumerGroup?