サーキットブレーカー(運用)
障害を起こし始めた依存先への回路を「遮断」し、タイムアウトで待たされる代わりに即座に失敗させるレジリエンスパターン。壊れた依存先が、それを呼ぶ全てを道連れにする連鎖障害を防ぐ。名前は電気のヒューズに由来する。
仕組みは三状態。クローズ(通常。呼び出しは通り、失敗を数える)、失敗率が閾値を超えるとオープン(全ての呼び出しを試すことなく即拒否する「フェイルファスト」。依存先に息をつく余裕を与え、呼び出し側はタイムアウト待ちを避けられる)。しばらくするとハーフオープン(試験的に数回通す)になり、成功すればクローズに戻り、失敗すればまたオープンになる。
解決する問題は、ブレーカーがなければ、呼び出し側が瀕死のサービスを叩き続けてタイムアウトでブロックし、スレッドやリソースが枯渇して障害が上流へ波及(カスケード)することだ。コード内(Resilience4j、Polly)やサービスメッシュで実装される。リトライ、タイムアウト、バルクヘッドと密接に関わり、マイクロサービスのレジリエンスの要である。