AWS ソリューションアーキテクト プロフェッショナル分散処理と配信経路の設計オリジナル・公式資料照合難易度★★★★☆

注文・在庫・決済サービスが各自のDBを持ち、単一の分散ACIDトランザクションは使わない。注文確定と在庫引当の後、決済が確定的に拒否された場合は、引当解除と注文取消しを業務上の補償操作として行う。Step Functionsを使う設計として最も適切なのはどれか。

A
Step FunctionsのFail状態に入れば、全サービスのCOMMITが自動で取り消されるとする

ワークフロー状態の失敗は、各サービスの独立したDBトランザクションの自動ROLLBACKではない。

B
決済の確定的拒否も無制限にRetryし、補償は作らない

確定的な業務上の拒否を再試行だけで解決できず、引当と注文の整合性が残る。

C
各成功ステップと補償操作を定義し、決済拒否時に必要な補償へ遷移させる★ 正解

問題で定めた業務上の巻戻しをSagaとして明示し、複数DB間の整合性を回復する。

D
決済拒否をCatchしてSuccessへ進めるだけで、在庫引当も解消済みと扱う

エラーを捕捉して成功扱いするだけでは、在庫と注文の補償操作を実行していない。

解説

Sagaでは各サービスのローカルトランザクションを進め、途中の失敗時には完了した処理に対応する補償操作をオーケストレーターが実行する。Step Functionsの失敗状態だけで別DBのCOMMITは取り消されない。補償自体にも再試行と冪等性を設計する。

根拠資料・確認情報

対応範囲:SAP-C03(2026-11-17開始予定、2026-10-30時点)

資料確認日:2026-10-30

同じレッスンの問題

アプリで毎日学習しよう

ゲーミフィケーションで AWS ソリューションアーキテクト プロフェッショナル 合格を目指す。無料・課金なし。

更新: 2026/10/29
注文・在庫・決済サービスが各自のDBを持ち、単一の分散ACIDトランザクションは | AWS ソリューションアーキテクト プロフェッショナル 練習問題・解説 | Mondaily