🚨 Postmortem — Caso 03: Incidente sin causa raiz identificable en 4 horas#
Severidad: SEV-2 (operacion afectada con MTTR fuera de SLO) Estado: Resuelto · Acciones implementadas en el lab Documento: retrospectiva basada en el patron de incidente que motiva este caso
Este postmortem es una reconstruccion narrativa del incidente que justifica la existencia del caso
03. No documenta un incidente real de produccion — documenta el patron operacional que el lab reproduce y resuelve, en formato de postmortem real para evaluacion ejecutiva.
📝 Resumen#
Errores 500 esporadicos en checkout. Sin correlation_id, sin contexto en logs, sin metricas por endpoint.
Blast radius: 240 min (el problema en si fue 15 min, el resto fue diagnosticar a ciegas).
🕒 Timeline (resumido)#
| Hora | Evento |
|---|---|
| T+00m | Sintoma reportado: ver docs/symptoms.md para senales tipicas |
| T+05m | Equipo on-call confirma el patron |
| T+15m | Diagnostico inicial — herramientas activadas: ver docs/diagnosis.md |
| T+N min | Mitigacion aplicada — opciones evaluadas en docs/solution-options.md |
| Post | Postmortem, action items, fix de mediano plazo (este documento) |
🎯 Causa raiz#
Logs en println sin id, sin payload, sin timestamp util. Cuando algo falla, no hay forma de seguir el rastro de una request especifica entre N concurrentes.
Causas estructurales contribuyentes documentadas en root-causes.md.
✅ Lo que funciono#
- El bug eventualmente se encontro (race condition en sesion)
- El equipo escribio postmortem el mismo dia
❌ Lo que no funciono#
- MTTR de 4 h cuando el problema real era trivial
- No existia correlation_id end-to-end
- Sin estructura JSON, los logs no eran agrupables
🛠️ Action items implementados en el lab#
- Implementar
checkout-observablecon correlation_id propagado - Logs JSON estructurados con
event,level,correlation_id, payload relevante - Endpoint
/logsque devuelve los ultimos N para audit en vivo - Alerta cuando MTTR > 60 min sin correlation_id presente
Trade-offs de cada accion documentados en trade-offs.md.
📊 Antes / Despues (metrica clave)#
MTTR para mismo tipo de bug: 4 h -> 18 min · correlation_id coverage: 0% -> 100%
🔗 Documentos relacionados#
../README.md— vista ejecutiva del casocontext.md— por que este patron aparecesymptoms.md— senales tipicasdiagnosis.md— estrategia de diagnosticoroot-causes.md— causas estructurales frecuentessolution-options.md— opciones evaluadastrade-offs.md— costos de cada opcionbusiness-value.md— impacto en negocio../comparison.md— comparativa multi-stack del fix
🧭 Para evaluador / reclutador#
Este postmortem sirve como vista de criterio operacional: como se piensa un incidente, no solo como se resuelve. El ../README.md muestra el problema y la solucion; este documento muestra el proceso de razonamiento sobre el incidente.
Caso 03 · Observabilidad deficiente y logs inutiles — ⬅️ 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