Claude CodeでSagaパターンを設計する:分散トランザクション・補償トランザクション・オーケストレーション
はじめに 「マイクロサービスをまたぐ注文処理が途中で失敗した——どこまで戻せばいい?」——Sagaパターンで分散トランザクションを補償トランザクションで巻き戻し、整合性を保つ設計をClaude Codeに生成させる。 CLAUDE.mdにSagaパターン設計ルールを書く ## Sagaパターン設計ルール ### オーケストレーション型 – SagaオーケストレーターがステップをRedisキューで順番に実行 – 各ステップは成功/失敗/補償の3つのハンドラーを持つ – 失敗時は逆順に補償トランザクションを実行 ### 冪等性 – 各ステップはリトライ可能(冪等キー必須) – 補償トランザクションも冪等(二重実行で同じ結果) – SagaログをDBに永続化(クラッシュ後の再開) ### タイムアウト – 各ステップに最大待機時間(例: 30秒) – タイムアウト時は自動補償開始 – SagaID単位でステータスを追跡 Saga実装の生成 Sagaパターンを設計してください。 要件: – オーケストレーション型Saga – 補償トランザクション – 冪等なステップ実行 – Sagaログ永続化 生成ファイル: src/saga/ 生成されるSaga実装 // src/saga/sagaOrchestrator.ts — Sagaオーケストレーター export interface SagaStep<TContext> { name: string; … Devamını oku