Definición
La replicación no intencionada de uno o más mensajes transmitidos de modo que el receptor obtiene múltiples copias de la misma instancia lógica de mensaje, distinta de la replicación deliberada (por ejemplo multicast, copias de seguridad) o de retransmisiones independientes con identificadores distintos.
Principio
Principio
Cuando la confirmación de entrega es incompleta o los identificadores son insuficientes, los mecanismos que reintentan o reenvían mensajes pueden provocar varias entregas indistinguibles; por ello, evitar efectos dañinos exige identificadores únicos, procesamiento idempotente o deduplicación en el receptor.
Demostración
Demostración
Escenario ilustrativo — Situación: Un sensor de campo envía un evento a un colector por un enlace inalámbrico poco fiable. Reconocimiento: El colector observa el mismo evento llegando dos veces en breve con idéntico ID de mensaje. Acción: El colector descarta la segunda copia usando el ID único. Consecuencia: La aplicación procesa el evento una sola vez y evita cambios de estado duplicados.
Aplicación incorrecta
Aplicación incorrecta
Interpretar cada recepción repetida de cargas similares como eventos distintos. El error es tratar la similitud superficial de la carga como prueba de ocurrencias separadas sin comprobar identificadores o marcas temporales estables; eso conduce a procesar por duplicado cuando hay duplicados.
Consecuencia
Consecuencia
Si no se detectan o toleran los duplicados por diseño, pueden producir transacciones duplicadas o transiciones de estado repetidas (por ejemplo, facturación duplicada, escrituras de base de datos repetidas), consumo innecesario de ancho de banda y recursos, e incoherencia entre réplicas del sistema.
Inversión
Inversión
En arquitecturas que replican mensajes intencionalmente (multicast, registro replicado, redundancia para disponibilidad), múltiples entregas son esperadas y seguras solo si los consumidores están diseñados para idempotencia o si se garantizan semánticas de entrega explícitas.
Límite
Límite
Claramente dentro: Un único mensaje lógico con el mismo identificador único recibido varias veces por el mismo punto final. Caso límite: Una retransmisión que modifica un sello temporal o campo de secuencia de modo que la identidad es ambigua y la deduplicación depende de la política de la aplicación. Claramente fuera: Mensajes distintos enviados intencionalmente a varios destinatarios (multicast) o duplicados creados deliberadamente en origen.
Tensión semántica
Tensión semántica
Fiabilidad frente a idempotencia: los mecanismos que aumentan la probabilidad de entrega (por ejemplo retransmisiones agresivas) incrementan el riesgo de duplicados a menos que se combinen con identificación explícita o procesamiento idempotente, forzando compensaciones entre garantías de entrega y complejidad de la aplicación.
Síntesis
Síntesis
Gestionar la duplicación de mensajes es ante todo un problema de diseño de interfaz: los mecanismos de entrega y las aplicaciones deben compartir contratos explícitos de identidad y procesamiento (IDs, idempotencia, ventanas de deduplicación) para impedir que las reintentos a nivel de red se transformen en duplicados semánticos a nivel de aplicación.