実装してみる理由 ReactiveSystemやMicroservices等の文脈で登場するCircuitBreakerについて以前調べた。 [Akka]CircuitBreakerはどう動くのか - Qiita AkkaのCircuitBreakerとNetflixのHystrixの違い - Qiita CircuitBreakerは内部にClose, Open, Half-Openの3つの状態を持ち、さらに非同期処理の実行とその監視という2つの責務を持つ。 状態の管理と責務の分割にはActorが適しているんじゃないかと思ったのがきっかけ。 リポジトリはここ。 petitviolet/supervisor Actor同士のsuperviseしている状態に似ている(と感じた)のでsupervisorという名前にしてある。 気分が乗ったのでMavenCentralにも公開している。 使い方