🧪 Problem-Driven Systems Lab

⚖️ Trade-offs#

  • Bloquear propaga la lentitud, y eso puede ser correcto. Un productor frenado es un cliente que espera. Si ese cliente tiene su propio timeout y reintenta, el backpressure se convierte en una tormenta de reintentos — que es el caso 04.
  • Descartar necesita contarse o no existe. drop_oldest sin messages_dropped_total es indistinguible de que todo funcione bien. El descarte silencioso es peor que la cola sin límite.
  • La DLQ no resuelve: muda. Convierte un problema de capacidad en uno de operación. Si nadie define quién la mira, la deuda se acumula durante meses (caso 20).
  • La capacidad correcta no es un número redondo. Muy chica, el productor se frena con picos normales. Muy grande, la latencia del mensaje más viejo crece y el OOM solo llega más tarde.
  • Escalar consumidores mueve el cuello de botella. Casi siempre al recurso que los consumidores comparten: la base de datos, el pool de conexiones (caso 14) o el servicio externo.

Caso 15 · Backpressure en colas de mensajes⬅️ 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 ↗