Circuit Breaker

Circuit Breaker — паттерн защиты от каскадных отказов: временно блокирует вызовы к неисправному сервису вместо повторения бесплодных попыток.

Состояния

Closed: обычная работа, запросы проходят. Open: обнаружены сбои, запросы сразу fail без вызова. Half-open: пробный запрос, при успехе — closed, при провале — open. Пороги: N ошибок за окно времени → open. Timeout в open (обычно 30-60 сек) → half-open.

Продукты

Netflix Hystrix (deprecated). Resilience4j: JVM. Polly: .NET. gobreaker: Go. Envoy Proxy: outlier detection в service mesh. Istio DestinationRule.trafficPolicy.outlierDetection. Обычно комбинируется с retry и timeout.

Метрики срабатывания

Error rate: >50% за 10 сек. Slow calls: p95 latency >1s за окно. Consecutive failures: N подряд. Volume threshold: минимум запросов для оценки (иначе шум). Sliding window count или time-based.

iGaming-применение

Провайдеры игр (external API): при недоступности вернуть fallback (provider temporarily unavailable). Антифрод-сервис: при таймауте пропустить транзакцию по правилам low-risk. Платёжные шлюзы: routing к альтернативному PSP. Критично для uptime — 1 упавший провайдер не должен валить платформу.