ページ内ナビ
概要
sony/gobreakerはCircuit Breaker patternをGoで実装するlibraryです。request resultを成功/失敗としてcountし、thresholdを超えるとclosedからopenへ遷移してrequestを即拒否し、timeout後にhalf-openで復旧可否をprobeします。v2はgeneric return typeに対応します。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
failure countとReadyToTripでclosedからopenへの遷移条件を定義する
連続失敗やcustom ReadyToTrip関数をもとにbreakerをopenへ遷移させ、失敗中のdependencyへrequestを送り続けることを防げます。
出典:[2]
rolling window・half-open・excluded errorでservice特性へ合わせる
Interval/BucketPeriodでcount windowを構成し、MaxRequestsでhalf-open probe数、Timeoutでopen期間を設定できます。IsExcludedでcontext cancellation等をbreakerの成功/失敗countから除外できます。
出典:[2]
向いている用途
外部API・DB・RPC等のfailure propagationを抑えたいmicroserviceに向く
timeoutやretryと組み合わせ、downstream障害時にrequest・goroutine・connection消費を増幅させずfast-failさせたいGo serviceに適します。
出典:[2]
導入前の確認
参考にした公式資料
- [1]sony/gobreaker — GitHub repository(2026-10-06)
- [2]gobreaker v2.4.0 — README(2026-10-06)
- [3]gobreaker v2.4.0 — v2/go.mod(2026-10-06)
- [4]gobreaker v2.4.0 tag(2026-10-06)
- [5]gobreaker MIT license(2026-10-06)
編集部からの補足
HTTP clientやDB、外部APIのfailureを単純retryだけで増幅させないための小さなresilience primitiveです。failure判定、open時間、half-open時の試行数はdependencyのSLOとtimeout/retry policyに合わせて設計してください。
3ステップで試す
- 1
ソースを取得
git clone --depth 1 https://github.com/sony/gobreaker.git - 2
リポジトリへ移動
cd gobreaker - 3
公式手順を確認
READMEのInstallation / Quick Start / Getting Startedにある公式コマンドを続けて実行してください。
find . -maxdepth 1 -iname 'README*' -exec sed -n '1,220p' {} \; -quit
成長
成長の推移 · 直近30日
3,702 Stars
推移データを蓄積中です。
開発アクティビティ
直近90日・週次
- Commit(直近30日)
- 0
- Open PR
- 18
開発アクティビティを蓄積中です。
Built with
カテゴリとタグ
GitHubデータ
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- Docker Compose38,290 Stars
共通タグ 1件 · 共通カテゴリ 2件 · 同じ言語
compose.yamlでservice・network・volume・buildを一つのmulti-container applicationとして再現するDocker CLI plugin
Go - minikube32,180 Stars
共通タグ 1件 · 共通カテゴリ 2件 · 同じ言語
手元の端末にKubernetesクラスタを作り、配備前の構成を試す
Go - Helm30,309 Stars
共通タグ 1件 · 共通カテゴリ 2件 · 同じ言語
ChartでKubernetes applicationのinstall・upgrade・rollbackをrelease単位で管理するpackage manager
Go - NATS Go Client6,770 Stars
共通タグ 3件 · 共通カテゴリ 2件 · 同じ言語
Core NATS Pub/SubとJetStream永続messagingを同じGo clientで扱う
Go - Istio38,429 Stars
共通タグ 3件 · 共通カテゴリ 1件 · 同じ言語
service間通信にmTLS・traffic policy・telemetryを透過的に追加するservice mesh
Go - gRPC-Go23,092 Stars
共通タグ 3件 · 同じ言語
Protocol BuffersとHTTP/2でGo service間のtyped RPCを実装するgRPC runtime
Go
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。