At-Least-Once
also: at-least-once delivery
A delivery guarantee that a message is never lost but may be delivered more than once — so consumers must be idempotent.
At-least-once delivery guarantees a message is never lost — it is retried until acknowledged — but as a result it may be delivered more than once (a lost ack triggers redelivery of an already-processed message). It is the default of most real queues.
Worked example: a worker processes a payment then crashes before acking; the queue redelivers it, so without protection the customer is charged twice. Gotcha: the fix is idempotent consumers — dedupe on a message id or use an idempotency key — since at-least-once is far more practical than true exactly-once; design every consumer to tolerate seeing the same message twice.