Circuit Breaker
Использую
Узнал, что у подхода есть имя: Circuit Breaker.
Суть: временно блокирует запросы к ненадёжному сервису, пока тот не восстановится.
Состояния:
- Closed — запросы идут нормально;
- Open — прерыватель «разорван», запросы отклоняются;
- Half‑Open — пробные запросы для проверки восстановления.
Использую
Был кейс - 3 форка одной системы синтегрированы с одним и тем же ресурсом. Это приводило к конфликтам при записи, кроме этого и сам ресурс мог отваливаться. Был соблазн использовать Mutex, но не было гарантии что форки будут жить на одном сервере.
Копая в сторону retry-яв, чтобы не писать самому, нашел Polly. Она и решила обе проблемы, при конфликте разовый retry решил проблему, а при N retry-ев решалось что ERP не доступна.
На тот момент был без понятия, что у метода есть модный термин.