■特定の支払いIDに対するメッセージを、送信されたのと同じ順序で受信する必要のある支払い処理システム。支払いIDをパーティションキーを書き込む先の場所として最適なのは?

Amazon Kinesis Data Streams

(選択肢)

・支払いIDをパーティションキーとして、Amazon Kinesis Data Streamsにメッセージを書き込みます

・Amazon Simple Queue Service(Amazon SQS)のFIFOキューにメッセージを書き込みます。支払いIDを使用するようにメッセージグループを設定します

これらの選択肢が正解の理由は以下の通りです。

まず、特定の支払いIDに対するメッセージを同じ順序で処理する必要があるため、それらのメッセージは一つのストリーム(Kinesis)もしくはキュー(SQS)に順番通りに格納されなければなりません。具体的には、Kinesis Data Streamsでは、同じパーティションキーを持つレコードは同一パーティションに書き込まれます。パーティション内でのレコードの順序は、書き込まれた順序を保持します。これにより、同じ支払いIDに対するメッセージを同じ順序で受信できます。

また、SQSのFIFOキューを使用すると、メッセージは正確に一回だけ消費され、送信と同じ順序で処理されます。これにより、一部のメッセージが誤って処理されるリスクを回避できます。FIFOキューではメッセージグループを利用すると、同じグループIDのメッセージは送信された順序で処理されます。このケースでは、支払いIDをメッセージグループIDとして設定することで要件を満たすことができます。

不正解についての説明:

選択肢:支払いIDをパーティションキーとして、Amazon DynamoDBのテーブルにメッセージを書き込みます

この選択肢が正しくない理由は以下の通りです。

Amazon DynamoDBは高度に適応性があり、パフォーマンスが高いNoSQLデータベースサービスであり、メッセージキューピングまたはストリーミングサービスではありません。

したがって、メッセージの送信順序の維持という要件を満たすための独自のメカニズムを提供していないため、DynamoDBはこのシナリオには適していません。

コメント

タイトルとURLをコピーしました