Repaso
English
Diseño de sistemasAvanzadoSD-10

Un message broker garantiza entrega at-least-once. ¿Qué deben hacer los consumidores?

Opciones

  1. Nada, porque cada mensaje llega una sola vez
  2. Ser idempotentes: deduplicar por ID o repetir sin daño (Opción correcta)
  3. Cambiar siempre el broker a modo exactly-once
  4. Confirmar el mensaje antes de procesarlo

Respuesta

Ser idempotentes (deduplicar por ID de mensaje o hacer que las operaciones se puedan repetir de forma natural)

Por qué

'At-least-once' significa que un mensaje nunca se pierde, pero puede llegar dos veces. Por ejemplo, el consumidor lo procesó pero cayó antes de confirmar, así que el broker lo reenvía.

Así que procesar dos veces el mismo mensaje debe ser inofensivo: guarda los IDs procesados y omite las repeticiones, o usa operaciones como 'fijar estado = pagado' en lugar de 'sumar 10 €'.

Confirmar antes de procesar arriesgaría a perder mensajes.

Recuerda

Entrega at-least-once → consumidores idempotentes.

Términos clave

Practica esta pregunta en Repaso