GuíaIntermedio

Guía de Patrones de Resiliencia y Confiabilidad

Aprende a hacer que un sistema distribuido sobreviva a las fallas de sus partes: timeouts, reintentos con backoff y jitter, idempotencia, circuit breakers, bulkheads, degradación elegante y load shedding. El eje de la guía es la falla parcial —en un sistema distribuido siempre hay algo caído o lento— y cómo evitar que la falla de una dependencia se convierta en la caída de todo el sistema. Trabajas sobre un solo caso de principio a fin: el flujo de checkout de Mercado, donde `orders` llama a `payments` y `shipping`, y esas dependencias fallan y se ponen lentas de verdad. Todo se simula y se mide en Python con tasas de falla y latencia configurables: vas a medir el thread exhaustion sin timeout, el retry storm sin backoff, cuántas llamadas se ahorra un circuit breaker cuando el servicio está muerto, cómo un bulkhead aísla una dependencia lenta para que no agote a las demás, y el success rate del checkout antes y después de blindarlo. El capstone combina todos los patrones sobre el checkout completo de Mercado y mide el resultado.

64
lecciones
8
módulos
Inglés · Español
disponible en
certificado
Gratis
acceso
NIEVA

Resultados

Lo que vas a poder hacer

  • Entender la falla parcial y la falla en cascada: por qué en distribuido algo siempre está caído o lento
  • Poner timeouts correctos (conexión y lectura) y medir cómo evitan el agotamiento de hilos/conexiones
  • Reintentar con backoff exponencial y jitter para evitar el retry storm, y saber cuándo NO reintentar
  • Implementar idempotencia con `idempotency_key` para que un reintento no cobre ni ejecute una operación dos veces
  • Aplicar circuit breakers (estados `CLOSED`/`OPEN`/`HALF_OPEN`) para dejar de golpear a un servicio muerto y medir la recuperación automática
  • Aislar dependencias con bulkheads para que una lenta no agote el pool de las demás
  • Diseñar degradación elegante y load shedding para que el sistema falle suave, no duro, bajo sobrecarga
  • Blindar de punta a punta un flujo real combinando todos los patrones, midiendo el success rate y la latencia antes y después

Antes de empezar

Qué necesitas traer

Es para ti si...

  • Backend devs cuyo servicio llama a dependencias poco confiables (red, terceros, otros microservicios) y no sabe cómo blindarlo
  • Devs que ya pusieron un `try/except` alrededor de una llamada externa pero nunca midieron si realmente ayuda
  • Cualquiera que necesite entender circuit breakers, bulkheads o backoff antes de usar una librería como resilience4j o Polly
  • Equipos que sufrieron una falla en cascada y quieren aprender a diseñar contra ella con criterio, no con parches

Requisitos y materiales

  • Python básico (todas las simulaciones y mediciones de esta guía se ejecutan en Python)
  • Haber construido un servicio backend que llama a otro servicio o API externa
  • No se requiere experiencia previa con librerías de resiliencia ni con sistemas distribuidos

Contenido

El temario, módulo por módulo

Abre cualquiera para ver sus lecciones.

Dudas frecuentes

Lo que suele preguntarse

Empieza cuando quieras

Reseñas

Lo que dicen los estudiantes

Estas reseñas son de estudiantes inscritos que completaron al menos el 50% del curso. Moderamos las reseñas solo por motivos de contenido (spam, lenguaje ofensivo, datos personales), nunca por ser críticas o negativas.

Aún no hay reseñas aprobadas.

¡Sé el primero en compartir tu experiencia!