AWS Certified Solutions Architect – Associate (SAA-C03) — Question 354
A company uses a payment processing system that requires messages for a particular payment ID to be received in the same order that they were sent. Otherwise, the payments might be processed incorrectly.
Which actions should a solutions architect take to meet this requirement? (Choose two.)
Answer options
- A. Write the messages to an Amazon DynamoDB table with the payment ID as the partition key.
- B. Write the messages to an Amazon Kinesis data stream with the payment ID as the partition key.
- C. Write the messages to an Amazon ElastiCache for Memcached cluster with the payment ID as the key.
- D. Write the messages to an Amazon Simple Queue Service (Amazon SQS) queue. Set the message attribute to use the payment ID.
- E. Write the messages to an Amazon Simple Queue Service (Amazon SQS) FIFO queue. Set the message group to use the payment ID.
Correct answer: B, E
Explanation
To guarantee strict message ordering per payment ID, Amazon Kinesis Data Streams and Amazon SQS FIFO queues are the appropriate services. In Amazon Kinesis, using the payment ID as the partition key ensures that all records with the same ID are directed to the same shard, maintaining their sequence. In Amazon SQS FIFO, setting the message group ID to the payment ID ensures that messages within that specific group are processed in a strict first-in, first-out order, whereas standard SQS, DynamoDB, and Memcached do not inherently guarantee ordered delivery.