[rabbitmq-discuss] What is a proper workflow for ACKs?

Emile Joubert emile at rabbitmq.com
Fri Sep 14 11:17:29 BST 2012


Hi,

On 13/09/12 17:31, mgornik wrote:
> Is there a way for me to implement this or should I treat ACKs differently?

I think the problem you describe stems from the difference between "at
least once" semantics offered by the broker and "exactly once" semantics
that you require.

One approach to obtain "exactly once" semantics is to add a unique
identifier to messages and make use of a de-duplication cache on the
client side. If a de-duplication cache was in place and an ack gets lost
then the message will be de-duplicated at subsequent delivery.

There is no point persisting acks for the purpose of issuing them after
a crash. You should persist a unique message id instead.


-Emile



More information about the rabbitmq-discuss mailing list