Три стани
- Closed (нормальна робота) — запити йдуть. Лічильник відмов зростає при помилках
- Open (вимикач спрацював) — запити блокуються, одразу повертається fallback. Встановлюється коли відмов > поріг
- Half-Open (перевірка) — після timeout пропускається один тестовий запит. Якщо успішно — переходить у Closed, якщо ні — назад у Open
Навіщо
Без circuit breaker: повільний сервіс A → потоки сервісу B зависають в очікуванні → сервіс B вичерпує thread pool → падає весь кластер. Circuit breaker «відключає» сервіс A і дає решті системі продовжити роботу.