Please just help me clarify this.
EDIT: OK so I've made some progress (correct me if I'm wrong):
Yep, if you give multiple EventProcessorHosts the same Consumer Group name then they will coordinate (assuming you've given them different unique identifiers) using blob leases, so only one will work on a partition at a time. Typically you would have multiple processes on multiple machines so as to parallelize the work. Partitions can and will move between machines as the processes restart (there's a delay).
If you use different consumer group names X and Y, then processors on X will only coordinate with processors on X, and processors on Y will coordinate only with those on Y. You can use the same name on two different processors if each is in a different consumer group. That is you can have EventProcessorHost "one" in X and another EventProcessorHost "two" in Y and they shouldn't interfere.
When checkpointing progress it is indeed just for within that ConsumerGroup. As I mentioned here I believe the offset is being tracked inside the blob used for the leases for coordination. As such each ConsumerGroup can checkpoint without knowing anything about the other (but probably shouldn't checkpoint with every message).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With