AWS Certified Solutions Architect – Associate (SAA-C03) — Question 740
A solutions architect is designing a payment processing application that runs on AWS Lambda in private subnets across multiple Availability Zones. The application uses multiple Lambda functions and processes millions of transactions each day.
The architecture must ensure that the application does not process duplicate payments.
Which solution will meet these requirements?
Answer options
- A. Use Lambda to retrieve all due payments. Publish the due payments to an Amazon S3 bucket. Configure the S3 bucket with an event notification to invoke another Lambda function to process the due payments.
- B. Use Lambda to retrieve all due payments. Publish the due payments to an Amazon Simple Queue Service (Amazon SQS) queue. Configure another Lambda function to poll the SQS queue and to process the due payments.
- C. Use Lambda to retrieve all due payments. Publish the due payments to an Amazon Simple Queue Service (Amazon SQS) FIFO queue. Configure another Lambda function to poll the FIFO queue and to process the due payments.
- D. Use Lambda to retrieve all due payments. Store the due payments in an Amazon DynamoDB table. Configure streams on the DynamoDB table to invoke another Lambda function to process the due payments.
Correct answer: C
Explanation
Amazon SQS FIFO (First-In-First-Out) queues guarantee exactly-once processing and support message deduplication, which natively prevents duplicate payments from being processed. In contrast, standard SQS queues, Amazon S3 event notifications, and DynamoDB Streams only guarantee at-least-once delivery, which can lead to duplicate processing under high volumes. Therefore, utilizing an SQS FIFO queue is the most reliable architectural choice to avoid duplicate transactions.