BR-003 注文ライフサイクル (Order Lifecycle)
1. 概要
注文の有効な状態と、それらの間の遷移ルール(エラー処理と補償処理を含む)を定義する。
2. ビジネスルール
2.1 ステートマシン (State Machine)
注文は以下の厳密な遷移パスに従わなければならない:
- CREATED (作成済み): 注文が行われ、在庫が引き当てられた(ロックされた)。
- PAID (支払い済み): 支払いが確認された。
- SHIPPED (出荷済み): 商品が顧客に出荷された。
- CANCELLED (キャンセル済み): 注文がキャンセルされた(ユーザーまたはシステムによる)。
2.2 状態遷移と補償 (State Transitions & Compensation)
- 遷移: CREATED -> PAID
- トリガー: 支払い成功イベント。
- アクション: ステータスを PAID に更新する。
- 遷移: CREATED -> CANCELLED (支払い失敗)
- トリガー: 支払い失敗。
- アクション:
- ステータスを CANCELLED に更新する。
- 補償処理 (Compensation): 在庫解放(在庫の加算)をトリガーする。
2.3 バリデーション (Validation)
- ルール: 無効な遷移(例:SHIPPED -> CREATED)はエラーとして拒否しなければならない。