🧪 Problem-Driven Systems Lab

🛠️ Opciones de solución#

OpciónQué resuelveQué cuesta
Idempotency-Key + reserva atómicaEl duplicado de raíz: charges_applied queda en 1Un lookup por request y una tabla que hay que mantener
Respuesta cacheada por claveEl reintento recibe exactamente lo mismo que el original, sin interpretar erroresGuardar el cuerpo de la respuesta, no solo la clave
Ventana de deduplicación (24 h)Evita que la tabla crezca sin techoUn reintento más tardío que la ventana se procesa como nuevo
Outbox patternEl efecto que cruza el boundary no puede desincronizarse del cargoUn worker más y latencia de entrega
Clave derivada del contenidoFunciona aunque el cliente no mande cabeceraDos operaciones legítimamente idénticas se confunden con un duplicado

Las tres primeras son el mismo mecanismo. El outbox es independiente: resuelve la otra mitad del problema.


Caso 16 · Idempotencia y efectos duplicados⬅️ README del caso · ⚖️ Comparativa de los 7 stacks

🗺️ Contexto · 🩺 Síntomas · 🔍 Diagnóstico · 🧠 Causas raíz · 🛠️ Opciones de solución · ⚖️ Trade-offs · 💼 Valor de negocio · 🚨 Postmortem

Ver esta carpeta en GitHub ↗