Exactly-once delivery
The promise that each message has its effect once; in practice, at-least-once delivery plus processing that ignores duplicates.
Across a network, a sender cannot tell whether a lost confirmation means the message was processed or not, so true exactly-once delivery is not possible in general. Products that advertise it guarantee it inside their own boundary, for example within one broker’s transactions. Once a message triggers an email, a payment or a call to another system, your code still needs an idempotency key or an inbox table.
Related terms
- At-least-once delivery: A queue or broker guarantee that every message arrives, possibly more than once, so consumers must handle duplicates.
- Inbox pattern (idempotent consumer): A consumer records the id of each processed message in the same transaction as its own change, and skips any id it has already seen.
- Idempotency (idempotency key): An operation is idempotent if doing it twice has the same effect as doing it once. Retries become safe.
