- A
Rely on SQS to guarantee exactly-once delivery for standard queues and remove all duplicate-handling logic in the consumer.
Why wrong: Standard SQS provides at-least-once delivery, not exactly-once. Duplicates can occur due to retries after timeouts, crashes, or visibility timeouts. Removing duplicate handling increases the chance of double-charging.
- B
Make the consumer idempotent by using an idempotency key from the payment instruction (for example, a unique transaction/payment ID) and storing processing results with conditional writes so repeated deliveries do not create a second order.
Because standard SQS is at-least-once, duplicates are expected under failure scenarios. The resilient approach is to ensure the side effect is performed only once by implementing idempotency. Store a record keyed by a payment/instruction ID using conditional logic (for example, a database conditional put/update or a transaction with a uniqueness constraint). If the key already exists, the consumer should treat the message as already processed and avoid creating a duplicate order/charge.
- C
Increase the SQS visibility timeout to the maximum value so the consumer never retries the message.
Why wrong: A longer visibility timeout reduces retry frequency but cannot guarantee that the consumer will finish processing within the timeout. If processing still exceeds the visibility timeout, the message will be delivered again and duplicates can still occur.
- D
Change the queue to SNS with a fan-out subscription so each consumer gets a separate copy, ensuring processing is sequential and duplicate-free.
Why wrong: SNS fan-out does not provide exactly-once semantics. Multiple deliveries and duplicate side effects can still occur, and sequential/duplicate-free processing is not guaranteed by SNS itself.
Quick Answer
The answer is to make the consumer idempotent by using an idempotency key from the payment instruction and storing processing results with conditional writes. This design prevents duplicate side effects because even if the same SQS message is processed multiple times after a timeout, the consumer checks a unique transaction ID against a database—like DynamoDB with a conditional put—and skips creating a new order if the key already exists. On the SAA-C03 exam, this tests your understanding that standard SQS queues do not guarantee exactly-once delivery, so you must design for at-least-once processing by making the consumer idempotent rather than relying on queue deduplication. A common trap is choosing FIFO queues for deduplication, but the question explicitly requires a resiliency-focused design that works with standard queues. Remember the mnemonic: IDEMpotent = ID + EM (Idempotency key + Exactly-once side effects via conditional writes).
SAA-C03 Design Resilient Architectures Practice Question
This SAA-C03 practice question tests your understanding of design resilient architectures. Read the scenario carefully and evaluate each option against the stated constraints before committing to an answer. A key principle to apply: idempotency ensures an operation has the same effect whether executed once or multiple times.. Once you have made your selection, read the full explanation to reinforce the concept and understand why each distractor is designed to mislead on exam day.
An orders service publishes payment instructions to an Amazon SQS queue. The downstream consumer sometimes times out while processing a message. After the message becomes visible again, the consumer may process the same instruction more than once and occasionally creates duplicate orders. The team needs a resiliency-focused design that prevents duplicates from creating double-charges, even if the same message is processed multiple times. What is the best architectural change?
Clue words in this question
Noticing these words before you look at the options changes how you read each choice.
Clue:
"best"Why it matters: Signals that multiple options may be partially correct. Choose the option that most directly solves the exact problem described, not the one that sounds most complete.
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
Make the consumer idempotent by using an idempotency key from the payment instruction (for example, a unique transaction/payment ID) and storing processing results with conditional writes so repeated deliveries do not create a second order.
Option B is correct because making the consumer idempotent ensures that processing the same payment instruction multiple times does not result in duplicate orders or double charges. By using a unique idempotency key (e.g., transaction ID) and conditional writes (e.g., DynamoDB conditional put or database INSERT ... ON CONFLICT DO NOTHING), the consumer can safely handle repeated message deliveries without side effects. This directly addresses the resiliency requirement without relying on SQS guarantees, which standard queues do not provide for exactly-once delivery.
Key principle: Idempotency ensures an operation has the same effect whether executed once or multiple times.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
Rely on SQS to guarantee exactly-once delivery for standard queues and remove all duplicate-handling logic in the consumer.
Why it's wrong here
Standard SQS provides at-least-once delivery, not exactly-once. Duplicates can occur due to retries after timeouts, crashes, or visibility timeouts. Removing duplicate handling increases the chance of double-charging.
- ✓
Make the consumer idempotent by using an idempotency key from the payment instruction (for example, a unique transaction/payment ID) and storing processing results with conditional writes so repeated deliveries do not create a second order.
Why this is correct
Because standard SQS is at-least-once, duplicates are expected under failure scenarios. The resilient approach is to ensure the side effect is performed only once by implementing idempotency. Store a record keyed by a payment/instruction ID using conditional logic (for example, a database conditional put/update or a transaction with a uniqueness constraint). If the key already exists, the consumer should treat the message as already processed and avoid creating a duplicate order/charge.
Clue confirmation
The clue word "best" in the question point toward this answer.
Related concept
Idempotency ensures an operation has the same effect whether executed once or multiple times.
- ✗
Increase the SQS visibility timeout to the maximum value so the consumer never retries the message.
Why it's wrong here
A longer visibility timeout reduces retry frequency but cannot guarantee that the consumer will finish processing within the timeout. If processing still exceeds the visibility timeout, the message will be delivered again and duplicates can still occur.
- ✗
Change the queue to SNS with a fan-out subscription so each consumer gets a separate copy, ensuring processing is sequential and duplicate-free.
Why it's wrong here
SNS fan-out does not provide exactly-once semantics. Multiple deliveries and duplicate side effects can still occur, and sequential/duplicate-free processing is not guaranteed by SNS itself.
Common exam traps
Common exam trap: answer the scenario, not the keyword
The trap here is that candidates assume SQS FIFO queues or increased visibility timeouts solve duplicates, but the question specifically tests the concept of idempotency as the correct resiliency pattern for at-least-once delivery systems.
Detailed technical explanation
How to think about this question
Idempotency is typically implemented by storing the idempotency key (e.g., a UUID from the payment instruction) in a database with a unique constraint or using a conditional write (e.g., DynamoDB PutItem with ConditionExpression: attribute_not_exists(pk)). If the key already exists, the write is rejected, preventing duplicate order creation. This pattern is resilient even with SQS's at-least-once delivery and consumer timeouts, as the second attempt will simply retrieve the existing result rather than reprocessing.
KKey Concepts to Remember
- Idempotency ensures an operation has the same effect whether executed once or multiple times.
- Standard SQS provides at-least-once delivery, meaning messages can be delivered more than once.
- An idempotency key (e.g., transaction ID) is used to uniquely identify an operation.
- Conditional writes or unique constraints prevent duplicate side effects when processing idempotent operations.
TExam Day Tips
- Watch for words such as best, first, most likely and least administrative effort.
- Review why wrong options are wrong, not only why the correct option is correct.
Key takeaway
Idempotency ensures an operation has the same effect whether executed once or multiple times.
Real-world example
How this comes up in practice
A cloud solutions architect for a retail company is evaluating services for a new workload. The correct answer here reflects best practice for the specific scenario described — not a general cloud recommendation. Idempotency ensures an operation has the same effect whether executed once or multiple times. Cloud exam questions reward reading the constraint carefully: the same technology can be right or wrong depending on the use case.
What to study next
Got this wrong? Here's your next step.
Review idempotency ensures an operation has the same effect whether executed once or multiple times., then practise related SAA-C03 questions on the same topic to reinforce the concept.
- →
Design Resilient Architectures — study guide chapter
Learn the concepts, then practise the questions
- →
Design Resilient Architectures practice questions
Targeted practice on this topic area only
- →
All SAA-C03 questions
1,040 questions across all exam domains
- →
SAA-C03 study guide
Full concept coverage aligned to exam objectives
- →
SAA-C03 practice test guide
How to use practice tests most effectively before exam day
Related practice questions
Related SAA-C03 practice-question pages
Use these pages to review the topic behind this question. This is how one missed question becomes focused revision.
Design Secure Architectures practice questions
Practise SAA-C03 questions linked to Design Secure Architectures.
Design Resilient Architectures practice questions
Practise SAA-C03 questions linked to Design Resilient Architectures.
Design High-Performing Architectures practice questions
Practise SAA-C03 questions linked to Design High-Performing Architectures.
Design Cost-Optimized Architectures practice questions
Practise SAA-C03 questions linked to Design Cost-Optimized Architectures.
SAA-C03 VPC practice questions
Practise SAA-C03 questions linked to SAA-C03 VPC.
SAA-C03 S3 lifecycle policy questions
Practise SAA-C03 questions linked to SAA-C03 S3 lifecycle policy questions.
SAA-C03 RDS Multi-AZ questions
Practise SAA-C03 questions linked to SAA-C03 RDS Multi-AZ questions.
SAA-C03 IAM policy practice questions
Practise SAA-C03 questions linked to SAA-C03 IAM policy.
SAA-C03 Route 53 failover questions
Practise SAA-C03 questions linked to SAA-C03 Route 53 failover questions.
SAA-C03 CloudFront practice questions
Practise SAA-C03 questions linked to SAA-C03 CloudFront.
SAA-C03 NAT gateway questions
Practise SAA-C03 questions linked to SAA-C03 NAT gateway questions.
SAA-C03 VPC endpoint questions
Practise SAA-C03 questions linked to SAA-C03 VPC endpoint questions.
Practice this exam
Start a free SAA-C03 practice session
Short sessions build daily habit. Longer sessions build exam-day stamina. Try a timed session to simulate real conditions.
FAQ
Questions learners often ask
What does this SAA-C03 question test?
Design Resilient Architectures — This question tests Design Resilient Architectures — Idempotency ensures an operation has the same effect whether executed once or multiple times..
What is the correct answer to this question?
The correct answer is: Make the consumer idempotent by using an idempotency key from the payment instruction (for example, a unique transaction/payment ID) and storing processing results with conditional writes so repeated deliveries do not create a second order. — Option B is correct because making the consumer idempotent ensures that processing the same payment instruction multiple times does not result in duplicate orders or double charges. By using a unique idempotency key (e.g., transaction ID) and conditional writes (e.g., DynamoDB conditional put or database INSERT ... ON CONFLICT DO NOTHING), the consumer can safely handle repeated message deliveries without side effects. This directly addresses the resiliency requirement without relying on SQS guarantees, which standard queues do not provide for exactly-once delivery.
What should I do if I get this SAA-C03 question wrong?
Review idempotency ensures an operation has the same effect whether executed once or multiple times., then practise related SAA-C03 questions on the same topic to reinforce the concept.
Are there clue words in this question I should notice?
Yes — watch for: "best". Signals that multiple options may be partially correct. Choose the option that most directly solves the exact problem described, not the one that sounds most complete.
What is the key concept behind this question?
Idempotency ensures an operation has the same effect whether executed once or multiple times.
About these practice questions
Courseiva creates original exam-style practice questions with explanations and wrong-answer analysis. It does not publish real exam questions, exam dumps, or protected exam content. Learn why practice questions differ from exam dumps →
Same concept, more angles
4 more ways this is tested on SAA-C03
These questions test the same concept from different angles. Work through them to make sure you can recognise it however the exam phrases it.
Variation 1. A system processes events from Amazon SQS and sometimes sees duplicate messages due to retries. The business requirement is that each payment must be charged at most once. What design choice best addresses this resiliency requirement?
easy- A.Assume duplicates never occur because the consumer deletes messages immediately after receiving them.
- ✓ B.Implement idempotent processing using a deduplication key (for example, paymentId) and record completed charges so duplicates are safely ignored.
- C.Increase the SQS visibility timeout until duplicates never happen.
- D.Use SNS topics instead of SQS so retries are disabled by default.
Why B: Option B is correct because implementing idempotent processing with a deduplication key (e.g., paymentId) ensures that even if duplicate messages arrive from SQS (due to retries or at-least-once delivery), the consumer can check a record of completed charges and safely ignore duplicates. This satisfies the business requirement of charging each payment at most once without relying on SQS’s best-effort deduplication or message ordering.
Variation 2. An orders service publishes payment instructions to an Amazon SQS Standard queue. The downstream processor sometimes times out after it has already applied the payment, but before it can delete the message from the queue. As a result, the same payment instruction can be processed more than once. The team wants the strongest way to prevent duplicate side effects while keeping the system decoupled. What should they implement?
medium- A.Keep the queue as SQS Standard but increase the visibility timeout so duplicates are less likely to reappear during timeouts.
- B.Change the queue to an SQS FIFO queue and use a stable deduplication ID derived from the payment instruction ID.
- ✓ C.Make the downstream processor idempotent by recording processed payment instruction IDs in a durable datastore and ignoring repeats.
- D.Use an ALB health check to restart the downstream processor when timeouts occur.
Why C: Option C is correct because making the downstream processor idempotent ensures that duplicate payment instructions are safely ignored, even if the same message is delivered more than once. This approach provides the strongest guarantee against duplicate side effects without requiring changes to the queue type or increasing visibility timeouts, and it keeps the system fully decoupled.
Variation 3. An orders service publishes payment instructions to an Amazon SQS Standard queue. A downstream consumer sometimes times out and retries the work, causing the consumer to process the same instruction more than once. Operationally, the team must ensure that duplicate processing does not create duplicate charges. The queue type cannot be changed. What is the most resilient application-side approach?
medium- A.Rely on SQS Standard to provide exactly-once delivery for each message, since the consumer uses retries.
- ✓ B.Implement idempotent processing using a persistent deduplication key (for example, paymentInstructionId) so repeated messages are ignored or safely merged.
- C.Increase the queue’s visibility timeout to 24 hours so messages never reappear even if the consumer times out.
- D.Delete and recreate the queue with a different name whenever duplicates are detected in production.
Why B: Option B is correct because implementing idempotent processing with a persistent deduplication key (e.g., paymentInstructionId) ensures that even if SQS Standard delivers the same message multiple times due to consumer timeouts and retries, the downstream logic will detect and ignore or safely merge duplicate charges. This is the most resilient application-side approach as it does not rely on queue configuration changes and works within the constraints of SQS Standard's at-least-once delivery model.
Variation 4. An orders service publishes payment instructions to an Amazon SQS Standard queue. A downstream consumer sometimes times out or crashes after it has partially completed processing, causing the same instruction to be processed more than once. You must keep the design resilient without attempting to guarantee exactly-once processing. Which approach best handles duplicates safely?
medium- A.Set the SQS visibility timeout extremely long so the message cannot be retried even after processing failures.
- ✓ B.Make the consumer idempotent by deriving a deterministic idempotency key from the payment instruction (for example, the instruction ID), persisting the result of successful processing, and skipping re-processing when that key is already marked successful.
- C.Switch to an SQS FIFO queue but remove error handling in the consumer so duplicates never occur.
- D.Send all failed messages to a DLQ and rely on it to deduplicate messages that were already successfully processed.
Why B: Option B is correct because making the consumer idempotent ensures that even if the same payment instruction is processed multiple times due to timeouts or crashes, the system remains consistent. By deriving a deterministic idempotency key (e.g., the instruction ID) and persisting the result of successful processing, the consumer can skip re-processing when the key is already marked as successful. This approach aligns with the requirement to keep the design resilient without guaranteeing exactly-once processing, as it safely handles duplicates at the application level.
Keep practising
More SAA-C03 practice questions
- A content publishing system uses Lambda functions that call an unreliable third-party API. Failed events must be retaine…
- A startup runs two EC2-based workloads in the same AWS Region. Its customer-facing API is always on, and its nightly vid…
- A warehouse integration service must use shared file storage across Linux EC2 instances in multiple Availability Zones.…
- A team runs a stateless web app on Amazon EC2 behind an Application Load Balancer. During traffic spikes, new EC2 instan…
- A service in private subnets downloads product images from Amazon S3 and stores job state in DynamoDB. A NAT Gateway is…
- A static site is hosted in Amazon S3 and delivered by CloudFront. After a frontend release, the same JavaScript bundles…
Last reviewed: Jun 11, 2026
This SAA-C03 practice question is part of Courseiva's free Amazon Web Services certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the SAA-C03 exam.
Question Discussion
Share a tip, memory trick, or ask about the reasoning behind this question. Do not post real exam questions, leaked content, braindumps, or copyrighted exam material. Comments are moderated and may be removed without notice.
Sign in to join the discussion.