concepto · intermedio · 2 min de lectura
At Least Once
At least once garantiza que ningún mensaje se pierde, pero puede entregar duplicados, delegando la deduplicación al consumidor.
No requiere conocimientos previos.
Alcance en breve
Cubre
- At Least Once as a concept
No cubre
- implementation details
Supone
- The reader understands relevant fundamentals.
Resumen
At least once es la garantía de entrega más común en mensajería: el broker se asegura de que cada mensaje llegue a su destino, aunque para lograrlo pueda entregarlo más de una vez. Si un consumidor procesa un mensaje pero no confirma antes de fallar, el broker reenvía el mensaje a otro consumidor —o al mismo cuando se recupera—.
El consumidor debe ser idempotente: procesar el mismo mensaje dos veces debe producir el mismo resultado. Eso puede significar usar IDs únicos para deduplicar, o diseñar operaciones que toleren repeticiones.
Alcance y supuestos
Cubre at least once como garantía de entrega, su contraste con at most once y exactly once, y patrones de idempotencia. Asume familiaridad con mensajería.
Modelo mental
Un amigo que te reenvía un mensaje de WhatsApp hasta que le contestás "recibido". Si te quedaste sin batería después de leerlo pero antes de contestar, te lo reenvía de nuevo. Puede que lo leas dos veces, pero seguro que lo leíste al menos una.
Uso práctico
- ✅ Kafka (default), RabbitMQ con acknowledgments, SQS.
- ❌ Operaciones no idempotentes sin deduplicación.
Ejemplo trabajado: deduplicar con idempotency key
Un servicio de pagos recibe POST /charges con header Idempotency-Key: abc123. Si el request se pierde y el cliente reintenta con la misma key, el servidor reconoce la key y devuelve el resultado original sin cobrar dos veces.
Evidencia
- La mayoría de los brokers de mensajería ofrecen at least once como comportamiento por defecto.
Fuentes citadas
- Wikipedia, Apache Kafka (Síntesis, 21-07-2026)