Courseiva

SAA-C03 Design Resilient Architectures Practice Question

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?

⚠ Common exam trap

Many candidates assume SQS Standard can provide exactly-once delivery if retries are handled properly, but the exam tests the understanding that SQS Standard inherently allows duplicates and that idempotency is the only reliable application-side solution.

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

✓

Implement idempotent processing using a persistent deduplication key (for example, paymentInstructionId) so repeated messages are ignored or safely merged.

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.

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 Standard to provide exactly-once delivery for each message, since the consumer uses retries.

    Why it's wrong here

    Amazon SQS Standard queues provide at-least-once delivery, meaning a message can be delivered more than once under normal operation. Consumer retries do not change the queue's delivery contract: a retry after a timeout or a visibility timeout expiry can result in the same message being processed a second time. Relying on SQS Standard for exactly-once semantics is therefore fundamentally incorrect and will permit duplicate charges.

  • ✓

    Implement idempotent processing using a persistent deduplication key (for example, paymentInstructionId) so repeated messages are ignored or safely merged.

    Why this is correct

    Because SQS Standard is at-least-once, the consumer must assume duplicates are possible. Persisting a record keyed by paymentInstructionId (or using a database unique constraint) lets the consumer detect that a given instruction was already processed successfully and safely skip the charge or merge results deterministically.

  • ✗

    Increase the queue’s visibility timeout to 24 hours so messages never reappear even if the consumer times out.

    Why it's wrong here

    Setting the visibility timeout to 24 hours merely prevents a message from becoming visible again during the timeout period; it does not stop duplicates from a consumer that crashes before deleting the message, nor does it protect against a second consumer poll that reads the message before the first one completes. A long visibility timeout can actually mask application failures for an entire day and delay processing of other messages in the same queue, while duplicate delivery can still occur after the timeout expires.

  • ✗

    Delete and recreate the queue with a different name whenever duplicates are detected in production.

    Why it's wrong here

    Deleting and recreating the queue with a different name is an operational workaround that does not resolve duplicate processing caused by the at-least-once delivery model. Any messages already in flight or already processed would be lost, and a new queue would not retroactively deduplicate charges already applied. This approach introduces downtime and does not provide a deterministic way to prevent the same payment instruction from being executed more than once, so it fails to address the root cause.

About these practice questions

One of 935 original SAA-C03 practice questions on Courseiva, each with a full explanation and wrong-answer analysis — not exam dumps or protected exam content. Learn why practice questions differ from exam dumps →

How Courseiva writes practice questions · Editorial policy

JA

Written by Johnson Ajibi, MSc IT Security

Senior Network & Security Engineer · founder of Courseiva

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.