I would love to understand how any message queue can offer "one-time" delivery. At best it seems like a misleadingly under-qualified description, e.g. "one-time-if-the-consumer-successfully-acks-the-message".<p>Ultimately dequeueing a message, doing work, and acking the message, involve multiple systems in a logical distributed transaction.<p>Regardless of any guarantees the queue makes, you will need to deal with the fact that the consumer can potentially perform an operation based on the message, and then the ack can fail due to any kind of communication failure between queue and consumer. Or the worker can die (permanently) immediately after performing the work but before performing the ack. Etc. The message will be redelivered and the operation will occur again. As a result, you likely need to ensure that the operation in question is idempotent.<p>Given that you need to ensure this idempotency regardless of the queue's delivery semantics, I don't see what benefit it is for the queue to make any claims about one-time delivery.<p>What am I missing?