mcpField
C
circuit-breaker-pattern

circuit-breaker-pattern

github.com/aj-geddes開発373476 回インストール34 週間前に更新
リポジトリ

circuit-breaker-pattern について

外部システムに依存するサービス向けに、サーキットブレーカーの実装方法をまとめたスキルです。障害処理、フォールバック、監視と言語別の例を扱います。

主な機能

  1. 01サーキット状態としきい値
  2. 02フォールバックとタイムアウトの指針
  3. 03状態変化の監視
  4. 04TypeScript、Python、Java のガイド

活用シーン

  1. 01外部 API 呼び出しの保護
  2. 02マイクロサービスやデータベース障害への対応
  3. 03障害の連鎖の抑制

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/aj-geddes/useful-ai-prompts --skill circuit-breaker-pattern

インストール後、Claude Code で/circuit-breaker-patternを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
circuit-breaker-with-monitoring.md
opossum-style-circuit-breaker-nodejs.md
python-circuit-breaker.md
resilience4j-style-java.md
typescript-circuit-breaker.md
scripts/
validate-api.sh
templates/
api-scaffold.yaml

詳細

サーキットブレーカーパターン

目次

概要

サーキットブレーカーパターンを実装して、依存先の障害時に連鎖的な障害を防ぎ、適切に機能を縮退させます。

使用する場面

  • 外部 API 呼び出し
  • マイクロサービス間の通信
  • データベース接続
  • サードパーティサービスとの統合
  • 連鎖的な障害の防止
  • フォールバック機構の実装
  • レート制限による保護
  • タイムアウト処理

クイックスタート

最小限の動作例:

enum CircuitState {
  CLOSED = "CLOSED",
  OPEN = "OPEN",
  HALF_OPEN = "HALF_OPEN",
}

interface CircuitBreakerConfig {
  failureThreshold: number;
  successThreshold: number;
  timeout: number;
  resetTimeout: number;
}

interface CircuitBreakerStats {
  failures: number;
  successes: number;
  consecutiveFailures: number;
  consecutiveSuccesses: number;
  lastFailureTime?: number;
}

class CircuitBreaker {
  private state: CircuitState = CircuitState.CLOSED;
  private stats: CircuitBreakerStats = {
    failures: 0,
// ... (see reference guides for full implementation)

リファレンスガイド

詳細な実装は references/ ディレクトリにあります:

ガイド内容
TypeScript Circuit BreakerTypeScript サーキットブレーカー
Circuit Breaker with Monitoringモニタリング機能付きサーキットブレーカー
Opossum-Style Circuit Breaker (Node.js)Opossum スタイルのサーキットブレーカー(Node.js)
Python Circuit BreakerPython サーキットブレーカー
Resilience4j-Style (Java)Resilience4j スタイル(Java)

ベストプラクティス

✅ 推奨事項
  • ユースケースに適したしきい値を設定する
  • フォールバック機構を実装する
  • サーキットブレーカーの状態を監視する
  • 妥当なタイムアウトを設定する
  • 指数バックオフを使用する
  • 状態遷移を記録する
  • 頻繁に作動した場合にアラートを出す
  • サーキットブレーカーの動作をテストする
  • 依存先ごとにブレーカーを使用する
  • ヘルスチェックを実装する
❌ 禁止事項
  • すべての依存先で同じブレーカーを使用する
  • 非現実的なしきい値を設定する
  • フォールバックの実装を省略する
  • オープン状態のサーキットブレーカーを無視する
  • リセットタイムアウトを過度に短く設定する
  • 監視を忘れる

コメント