🔍 Diagnóstico#
- Graficar profundidad, no throughput. El throughput de un sistema con cola sin límite se ve perfecto hasta el segundo antes del OOM.
queue_depthes la métrica que crece. - Medir la edad del mensaje más viejo.
oldest_msg_age_mses la latencia real que sufre el usuario final. La latencia del consumidor mide otra cosa: cuánto tarda en procesar uno, no cuánto esperó ese uno. - Buscar la palabra «unbounded» en el código.
Queue()sinmaxsize,Channel.CreateUnbounded(),ConcurrentLinkedQueue,mpsc::channel(). Todas son declaraciones explícitas de que no hay freno. - Verificar si hay descarte silencioso. Si la cola tiene límite pero nadie cuenta los rechazos, los mensajes desaparecen sin dejar rastro.
messages_dropped_totaltiene que existir aunque valga cero. - Preguntar dónde está el freno. Si no está en la cola, está en el kernel, en el broker o en el balanceador — pero está en algún lado. Conviene saber cuál antes de que lo muestre un incidente.
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