Волобуев Петр | Технологический радарВолобуев Петр | Технологический радар

Circuit Breaker

Использую

Узнал, что у подхода есть имя: Circuit Breaker.

Суть: временно блокирует запросы к ненадёжному сервису, пока тот не восстановится.

Состояния:

  • Closed — запросы идут нормально;
  • Open — прерыватель «разорван», запросы отклоняются;
  • Half‑Open — пробные запросы для проверки восстановления.
Использую

Был кейс - 3 форка одной системы синтегрированы с одним и тем же ресурсом. Это приводило к конфликтам при записи, кроме этого и сам ресурс мог отваливаться. Был соблазн использовать Mutex, но не было гарантии что форки будут жить на одном сервере.

Копая в сторону retry-яв, чтобы не писать самому, нашел Polly. Она и решила обе проблемы, при конфликте разовый retry решил проблему, а при N retry-ев решалось что ERP не доступна.

На тот момент был без понятия, что у метода есть модный термин.