サーバーレスのチケットシステムは、注文IDを生成し、その後、在庫管理と支払い処理のLambda関数を並行して実行します。もし座席が誤って2回販売された場合、最初に受け付けられた注文がその座席を取得し、その注文の支払いのみが処理される必要があります。最初の注文の支払いが拒否された場合、2番目の注文が座席を取得し、その支払いが処理される必要があります。これらの要件を満たす設計はどれですか?
解答を選択
オプションをタップして解答を確認してください。
正解: 注文IDをAmazon SNS FIFOトピックに送信し、そのトピックから在庫管理用のAmazon SQS FIFOキューと支払い処理用の別のSQS FIFOキューにファンアウトします。.
これが解答である理由
この設計は、FIFO (First-In, First-Out) の順序保証と重複排除の要件を満たします。Amazon SNS FIFOトピックはメッセージの順序を維持し、Amazon SQS FIFOキューはメッセージを厳密な順序で処理し、重複を排除します。これにより、最初の注文が優先され、その支払いが失敗した場合にのみ次の注文が処理されるというロジックを確実に実装できます。 他のオプションでは、以下の問題があります。 Lambda関数を直接呼び出すと、並列処理や順序保証が難しくなります。 標準のAmazon SNSトピックやAmazon SQSキューはFIFOの順序保証や重複排除を提供しないため、座席の二重販売や処理順序の問題が発生する可能性があります。
試験に合格 — 終わりのない解答探しなしで
この試験のすべての検証済み問題と解説を1か所で入手し、準備時間を大幅に節約しましょう。1,000以上の認定 · 20以上の言語 · 無料で開始。
試験に早く合格する → カード不要