El Circuit Breaker es uno de los patrones de resiliencia más importantes en sistemas modernos. Su objetivo es simple: evitar que un servicio caído arrastre a toda la plataforma.
Cuando un servicio empieza a fallar repetidamente —por latencia, sobrecarga o caída total— el Circuit Breaker "abre el circuito", bloquea temporalmente las llamadas y evita seguir gastando recursos en algo que no va a responder. Así protege al resto del sistema.
¿Cómo funciona?
- Closed (Cerrado): todo funciona normal, el servicio responde.
- Open (Abierto): se detectan fallas consecutivas y se bloquean las llamadas posteriores.
- Half-Open (Semiabierto): después de un tiempo, se prueban algunas llamadas para ver si el servicio se recuperó.
Si el servicio vuelve a la vida, el circuito se "cierra" y todo fluye otra vez. Si no, se mantiene "abierto" y sigue protegiendo al sistema.
Por qué es indispensable
Sin Circuit Breaker, un servicio lento o caído provoca:
- Colas saturadas
- Latencia en cascada
- Timeouts encadenados
- Y finalmente una caída global
En otras palabras: sin Circuit Breaker, un solo error se multiplica hasta romper todo.
Buenas prácticas al implementarlo
- Definir umbrales reales: cuántos errores seguidos activan el bloqueo.
- Configurar tiempo de recuperación según tu carga y contexto.
- Registrar métricas para anticipar problemas (errores, latencia, rechazos).
- Combinarlo con Retry, Timeout y Bulkhead para máxima resiliencia.
Conclusión
Implementar Circuit Breaker no es opcional. Es un requisito para cualquier plataforma moderna que quiera sobrevivir a fallas inevitables.
Un sistema sin patrones de resiliencia no es un sistema: es una apuesta. Y en producción, apostar siempre sale caro.