🧪 Problem-Driven Systems Lab
⏱️ Caso 04 · Resiliencia

Cadena de timeouts y tormentas de reintentos

Una integracion lenta o inestable dispara reintentos, bloqueos y cascadas de fallas entre servicios.

OPERATIVO 🐘 PHP🐍 Python🟢 Node.js☕ Java🔵 .NET🐹 Go🦀 Rust

📈 Que cambia para el negocio

Ayuda a reducir fallas en cascada y a disenar limites mas sanos de timeout, retry y backoff.

💼 Que demuestra tecnicamente

Demuestra resiliencia aplicada mostrando como una dependencia lenta se convierte en incidente mayor cuando el servicio propio reintenta sin control.

✅ Evidencia que deja

  • Contrasta /quote-legacy y /quote-resilient sobre el mismo proveedor simulado.
  • Hace visible el costo de retries agresivos, timeouts repetidos y respuestas degradadas con fallback.
  • Expone dependency/state, incidents y diagnostics/summary para leer el comportamiento del circuit breaker.

👀 Que mirar al ejecutarlo

  • Si legacy tarda mas y consume mas intentos ante el mismo escenario provider_down.
  • Si resilient abre circuito, usa fallback y contiene la degradacion.
  • Si diagnostics/summary deja claro cuando la carga se amplifica y cuando queda contenida.
Honestidad: No reemplaza una integracion real ni una malla completa de servicios. Si reproduce la logica operacional relevante de timeouts, retry storm, circuit breaker y fallback.

Como esta resuelto en cada stack

PHP 8.3 con retries legacy vs timeout corto, backoff, circuit breaker y fallback; Python con misma logica; Node.js 22 con AbortController/AbortSignal, circuit breaker y fallback; Java 21 con CompletableFuture.orTimeout + AtomicReference<BreakerState> CAS; .NET 8 con CancellationTokenSource con timeout + breaker Interlocked CAS

StackHealth check localComposeDetalle
🐘 PHP 8.3http://localhost:8100/04/healthcompose.root.ymlREADME del stack
🐍 Python 3.12http://localhost:8200/04/healthcompose.python.ymlREADME del stack
🟢 Node.js 22http://localhost:8300/04/healthcompose.nodejs.ymlREADME del stack
☕ Java 21http://localhost:8400/04/healthcompose.java.ymlREADME del stack
🔵 .NET 8http://localhost:8500/04/healthcompose.dotnet.ymlREADME del stack
🐹 Go 1.23http://localhost:8600/04/healthcompose.go.ymlREADME del stack
🦀 Rust 1.83http://localhost:8700/04/healthcompose.rust.ymlREADME del stack

El expediente completo

El caso no empieza en el codigo: empieza en el sintoma y termina en el postmortem.

← Caso 03Caso 05 →