A financial services company is migrating a legacy payment settlement system to AWS. The system must process account withdrawal requests sequentially on a per-account basis to prevent overdrafts. The transaction volume is highly spiky and can reach up to requests per second. The company wants to design a decoupled, resilient, and serverless messaging architecture that guarantees ordering within each account while maximizing throughput and minimizing operational overhead.
Which combination of steps should a solutions architect recommend to meet these requirements? (Select TWO.)
- Create an Amazon SQS FIFO queue and enable high-throughput mode for the queue.Answer
- Publish the withdrawal events using the unique account number as the Message Group ID.Answer
- CCreate an Amazon SQS Standard queue and rely on the visibility timeout to order the messages.
- DPublish the withdrawal events using a single static string as the Message Group ID for all messages.
- ECreate an Amazon SNS Standard topic and subscribe multiple Amazon SQS Standard queues to fan out the traffic.
Answer
The correct solution is to create an Amazon SQS FIFO queue with high-throughput mode enabled, and publish the withdrawal events using the unique account number as the Message Group ID.
To satisfy both ordering and scale requirements, the architecture must use Amazon SQS FIFO with high-throughput mode enabled. Using the account number as the Message Group ID ensures that messages for the same account are processed in order, while messages for different accounts can be processed concurrently by multiple consumers. This design provides both the necessary ordering guarantees and the scalability to support 8,000 transactions per second.
Step-by-Step Solution
Key Concept
Decoupling event-driven workloads with Amazon SQS FIFO high-throughput mode and Message Group IDs.