Exactly-once delivery with RabbitMQ

Tagged amqp, exactly-once, messaging, rabbitmq, reconciliation  Languages 

Use late acknowledgment and idempotency to achieve fake exactly-once delivery with RabbitMQ.

Late acknowledgment = acknowledge the message after the database transaction has been committed.

Idempotency = don’t process the same message twice, or ensure the effect is the same when processing the same message multiple times

Reconciliation step = if you need 100% reliability create a process (manual or automatic) that checks that all work is done, if not resend the message