Hi,
I need ordered events processing. I’m choosing between a catchup subscription and a persistent subscription with a single consumer per group. Are there any cases when using a persistent subscription with ‘MaxSubscriberCount’ of 1 will not guarantee the ordering?
Max.
Are there any cases when using a persistent subscription with ‘MaxSubscriberCount’ of 1 will not guarantee the ordering?
Yes , because you need to ACK / NACK processing of messages,
the server can also NACK automatically if it does not receive the ACK / NACK on time
This can lead to
- Duplicate message being sent
- Retries ( and could be retried after a following event has been sent)
- parked messages.
all 3 above make it impossible to guarantee ordering with persistent subcriptions
if you need processing oredring guarantee , use a catch-up .
From what I heard, it is possible but the batch size must be set to zero. It will be very slow, but it will work.