Persistent subscription with single consumer

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.