At-least-once delivery
Messaging guarantee: a message is delivered at least once, sometimes more. Consumers must handle duplicates (idempotent processing). Default for most queue systems (Kafka, RabbitMQ, SQS) due to being simpler-than-exactly-once.
Distinct from at-most-once (can be lost, no duplicates) and exactly-once (notoriously hard). Trade-off: reliable delivery but moves the deduplication burden to the consumer. Idempotency keys: include a unique ID per message, consumer dedups via DB. Kafka: at-least-once default; exactly-once semantics opt-in via transactional producer + idempotent consumer pattern. Real-world: payment systems use at-least-once + idempotency keys (Stripe API requires Idempotency-Key header). Saga pattern + outbox pattern are aids.