金融トランザクション処理における厳格な順序保証と重複排除

SQS FIFOキューはFirst-In-First-Outの厳密な順序配信を保証し、メッセージ重複排除機能(コンテンツベースまたはMessageDeduplicationIdによる5分間の重複排除)を備え、メッセージグループIDごとの順序処理を保証する。 可視性タイムアウト後の再受信や処理完了前の障害は起こり得るので、業務トランザクションの1回だけの実行をFIFOだけで保証することはできない。 可視性タイムアウトは処理中の再受信を制御する。標準キューをFIFOの順序・送信重複排除へ変更する機能ではない。 SNS FIFOは順序付き通知に使うが、ワーカーがReceiveMessageで取得するキューではない。保持とワーカーのポーリングにはSQS FIFOを使う。 SQS標準キューはベストエフォートの順序付けであり、少なくとも1回の配信(重複が発生しうる)のため要件を満たさない。

金融取引のメッセージを、口座ごとに送信順を保ってキューへ格納したい。送信側は同じ要求の再送時に同一の重複排除IDを使用する。重複実行を防ぐ業務処理の冪等性は別途実装する。送信時の重複排除とグループ単位の順序を提供するキュー構成を選ぶ。

最も適切なものを1つ選択してください。

出典AWS非公式・オリジナル問題
ア
SQS標準キューの可視性タイムアウトを長くし、送信順序と送信重複の排除を保証する
イ
SNS FIFOトピックだけを作り、ワーカーがReceiveMessageで取得する
ウ
Amazon SQS 標準キューを使用し、ワーカー側で順序保証を期待する
エ
SQS FIFOキューで、メッセージグループIDと重複排除IDを設定する