## メッセージキュー (Message Queue)

「非同期イベント/タスクがどのように流れるか」のロジックを表現するために使用されます: イベントとは何か、誰がそれを生成/消費するか、順序とべき等性、失敗の再試行、およびデッドレター。「MQに送信する」とだけ記述して検証できない事態を回避します。

適用シナリオ:
- 非同期の分離 (送信後の非同期処理、通知、照合)
- イベント駆動 (状態の変更がダウンストリームのアクションをトリガーする)
- ピークシェービングとバレーフィリング (ピーク時にキューに書き込み、バックグラウンドでゆっくりと消費する)

推奨される構造:
- イベント定義: トピック、イベント名、スキーマ、バージョン管理戦略
- プロデューサー: どのシナリオで生成されるか、トリガー条件、トランザクションの一貫性 (アウトボックス/トランザクションメッセージ)
- コンシューマー: 処理ロジック、べき等性キー、再試行戦略、順序要件
- 障害処理: DLQ、アラート、手動補償、リプレイ機能
- 可観測性: 配信/消費の遅延、バックログ量、失敗率、traceIdの浸透

実装の提案:
- すべてのイベントは「べき等性キー + 重複排除ウィンドウ」を定義する必要があり、受け入れテストケースは重複した配信と順序が狂ったシナリオをカバーする必要があります。