Sistava

What is At-Least-Once Delivery?

Also called at least once.

At-least-once delivery is a messaging guarantee in which every message is delivered to a consumer one or more times, never zero. The system retries until it receives an acknowledgment, which means a message whose acknowledgment is lost will be redelivered. Consumers must therefore tolerate seeing the same message more than once.

The guarantee exists because the alternatives are worse or unattainable. At-most-once delivery, where a message is sent without retry, silently loses work whenever a consumer crashes mid-processing. True exactly-once delivery across independent systems is not achievable in general, since the acknowledgment itself can be lost after the work completes and no protocol can distinguish that from a failure before completion. At-least-once accepts duplicates as the tolerable failure.

Duplicates arise from ordinary events, not exotic ones. A consumer that finishes processing and then crashes before acknowledging will see the message again. A visibility timeout that expires during a slow operation causes redelivery while the original is still running. A rebalance across consumers reassigns in-flight partitions. Any of these can produce concurrent duplicate processing, not merely sequential.

The standard remedy is to make the consumer's effect repeatable without additional change, using a deduplication key derived from the message and recorded transactionally with the work. Where the effect reaches an external system, that system's own deduplication support becomes decisive: many payment and messaging APIs accept a client-supplied key precisely so a retried call is recognized as the same request.

For agent workloads the stakes rise because side effects are the product. A duplicated run that sends the same email twice, files the same ticket twice, or repeats an outbound action is a user-visible defect rather than a wasted cycle. Systems that let agents act should treat duplicate suppression at the action boundary as a required control, not as an optimization.

Key points

In practice

A worker consumes task messages and calls an outbound email API. A network partition delays one acknowledgment past the visibility timeout, so the broker redelivers while the first attempt is still in flight. Because the worker passes a deduplication key derived from the task identifier, the email provider recognizes the second call as the same request and returns the original result instead of sending twice.

Related terms

Back to the AI Glossary