Claude Codeでグレースフルデグレデーションを設計する:部分的サービス継続・フォールバック階層・ユーザー影響最小化

はじめに 「推薦エンジンが落ちたら全ページが503になった」——グレースフルデグレデーションで依存サービスが落ちてもコアユーザー体験は維持し、フォールバックで代替コンテンツを提供する設計をClaude Codeに生成させる。 CLAUDE.mdにグレースフルデグレデーション設計ルールを書く ## グレースフルデグレデーション設計ルール ### 機能の重要度分類 - CRITICAL: 認証・...

By · · 1 min read
Claude Codeでグレースフルデグレデーションを設計する:部分的サービス継続・フォールバック階層・ユーザー影響最小化

Source: DEV Community

はじめに 「推薦エンジンが落ちたら全ページが503になった」——グレースフルデグレデーションで依存サービスが落ちてもコアユーザー体験は維持し、フォールバックで代替コンテンツを提供する設計をClaude Codeに生成させる。 CLAUDE.mdにグレースフルデグレデーション設計ルールを書く ## グレースフルデグレデーション設計ルール ### 機能の重要度分類 - CRITICAL: 認証・決済・注文確定 → 絶対に落とさない - HIGH: 検索・商品一覧 → 最大努力で維持(キャッシュフォールバック) - MEDIUM: パーソナライズ推薦 → 落ちたら汎用コンテンツで代替 - LOW: リアルタイム閲覧数・ランキング → 落ちたら非表示でOK ### フォールバック階層 1. Primaryサービス(通常通り) 2. Staleキャッシュ(Redisにある古いデータ) 3. 静的フォールバック(ハードコードされたデフォルト) 4. 機能なし(エラーではなく「現在利用できません」UI) ### ユーザーへの通知 - CRITICAL障害: エラーページ(透明性) - MEDIUM/LOW障害: サイレントデグレード(ユーザーに気づかせない) - 管理者ダッシュボード: 全デグレード状況をリアルタイム表示 グレースフルデグレデーション実装の生成 グレースフルデグレデーションシステムを設計してください。 要件: - 機能重要度分類 - フォールバック階層 - サイレントデグレード - デグレード状況の追跡 生成ファイル: src/resilience/degradation/ 生成されるグレースフルデグレデーション実装 // src/resilience/degradation/degradationManager.ts — デグレデーション管理 export type FeaturePriority = 'CRITICAL' | 'HIGH' | 'MEDIUM' | 'LOW'; export interface FallbackStrategy<T> { staleCache?: () => Promise<T | null>; // 古いキャッシュから取得 staticDefault?: () => T; // 静的デフォ