RabbitMQ 3.9 exactly-once delivery guarantees ?

157 views
Skip to first unread message

David Dupont

unread,
Aug 23, 2021, 5:55:22 AM8/23/21
to rabbitmq-users
Hi,

With the new Stream protocol and deduplication capabilities on RabbitMQ 3.9, do you think RabbitMQ can now be considered capable of offering “exactly once” message delivery guarantees?

Regards.

kjnilsson

unread,
Aug 24, 2021, 7:06:59 AM8/24/21
to rabbitmq-users
TLDR; Well no, not really. 

Definitely not exactly once delivery. I don't think anyone can actually claim that.

You can achieve some kind of "exactly once" processing if your input and output of your processing are both streams by using the offset from a message on the input stream as the publishing id (deduplication sequence) when publishing to the output stream. There are a few immediate caveats however:

* The processing needs to be deterministic (i.e. if a message is processed again after a failure it needs to produce the same result)
* There needs to be an output message per input message unless the batching of input messages (aggregation/windowing) is deterministic also (how?).

So the answer can be 'yes' if you don't have very complex requirements.

Cheers
Karl




Reply all
Reply to author
Forward
0 new messages