What is a good practice to achieve the "Exactly-once delivery" behavior with Amazon SQS?

amazon-sqs

Solution

FIFO queues are now available and provide ordered, exactly once out of the box.

https://aws.amazon.com/sqs/faqs/#fifo-queues

Check your region for availability.

Problem

According to the documentation: Q: How many times will I receive each message? Amazon SQS is engineered to provide “at least once” delivery of all messages in its queues. Although most of the time each message will be delivered to your application exactly once, you should design your system so that processing a message more than once does not create any errors or inconsistencies. Is there any good practice to achieve the exactly-once delivery? I was thinking about using the DynamoDB “Conditional Writes” as distributed locking mechanism but... any better idea? Some reference to this topic: - At-least-once delivery (Service Behavior) - Exactly-once delivery (Service Behavior)

Original source

Related problems