複数サービスをまたぐ業務処理の補償

ア(誤り):配信順序と、状態遷移・業務上の補償処理を制御するワークフローは別である。 イ:AWS Step Functionsは、視覚的なステートマシンを使用して複数のマイクロサービスをワークフローとして協調動作させることができる。分散トランザクション(Sagaパターン)において、途中のステップが失敗した場合にCatchブロックで補償トランザクション(キャンセル処理)を呼び出す設計が容易に実装できる。 ウ(誤り):DBの可用性構成は複数サービスの業務操作を原子的に戻す機能ではない。 エ(誤り):イベントの振分けだけではSaga全体の実行状態と補償を管理しない。

旅行予約プラットフォームにおいて、「航空券の予約」「ホテルの予約」「レンタカーの予約」という独立したマイクロサービス間での分散トランザクションを実装している。途中で「レンタカーの予約」が失敗した場合、既に成功した「航空券」と「ホテル」の予約を取り消す(補償トランザクションを実行する)必要がある。このワークフロー制御を堅牢にオーケストレーションするサービスを1つ選択してください。

出典AWS非公式・オリジナル問題
ア
SQS FIFOキュー単独で、決済完了後の在庫失敗に応じる返金手順を定義する
イ
AWS Step Functions(ステートマシンでエラー処理と補償ロジックをオーケストレーション)
ウ
DBのMulti-AZを有効化し、複数サービスの外部API操作も一括ロールバックする
エ
EventBridgeのイベントパターンだけで、各ステップの成功履歴と補償順序を保持する