Elige una clave de deduplicación
Usa un ID de origen si es único y estable; si no, deriva una clave de campos que identifiquen el mismo evento de negocio. Evita usar solo la hora o un ID de entidad amplio, pues puede dejar pasar duplicados o fusionar actualizaciones distintas.
Guarda clave y estado de procesamiento atómicamente junto al resultado de negocio cuando el almacenamiento lo permita. Define cuánto tiempo conservarlos según reintentos tardíos y ventanas de reproducción.
Haz seguros los reintentos
Antes de enviar mensajes, crear pagos o cambiar registros externos, comprueba si el efecto ya ocurrió o usa la idempotencia del destino. El reinicio debe poder continuar desde el progreso guardado.
Prueba eventos duplicados, tardíos y desordenados, incluidos dos workers procesando el mismo evento a la vez. Supervisa deduplicaciones y rechazos para no descartar trabajo válido por una clave errónea.