Courseiva

SAA-C03 Design Resilient Architectures Practice Question

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?

⚠ Common exam trap

A common mix-up: candidates assume that switching to a FIFO queue or increasing visibility timeout fully solves duplicate processing, but they overlook that the downstream processor's timeout after applying the payment is the root cause, which idempotency directly addresses.

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 downstream processor idempotent by recording processed payment instruction IDs in a durable datastore and ignoring repeats.

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.

Answer analysis

Option-by-option breakdown

For each option: why learners choose it and why it is or isn't the right answer here.

  • ✗

    Keep the queue as SQS Standard but increase the visibility timeout so duplicates are less likely to reappear during timeouts.

    Why it's wrong here

    Increasing the visibility timeout only delays when a message reappears; it does not change SQS's at-least-once delivery semantics. If a consumer processes a message successfully but crashes or times out before calling DeleteMessage, the message becomes visible again once the timeout expires and will be reprocessed. A longer timeout reduces the frequency of redeliveries but cannot eliminate them, and it also inflates the time to recover from genuine processing failures.

  • ✗

    Change the queue to an SQS FIFO queue and use a stable deduplication ID derived from the payment instruction ID.

    Why it's wrong here

    SQS FIFO queues use a deduplication ID to drop identical messages sent within the five-minute deduplication window; however, this mechanism only prevents duplicate writes from producers, not duplicate deliveries to a consumer. If a consumer receives a message, processes it, and then fails to delete it before the visibility timeout, the same message can be redelivered even in a FIFO queue, because the message was already successfully sent and stored. FIFO also does not replace the need for idempotent consumer logic.

  • ✓

    Make the downstream processor idempotent by recording processed payment instruction IDs in a durable datastore and ignoring repeats.

    Why this is correct

    SQS Standard is at-least-once delivery, so the same message can be delivered more than once if the consumer times out before deleting it. Idempotent processing is the strongest protection against duplicate side effects because it prevents repeat application of the payment even when the message is redelivered.

  • ✗

    Use an ALB health check to restart the downstream processor when timeouts occur.

    Why it's wrong here

    An ALB health check is designed to detect unhealthy HTTP targets and trigger instance replacement or restart; SQS consumers typically poll the queue directly and are not routed through an ALB, so the health check would not even see the SQS processing timeout. Even if the processor is restarted, SQS semantics remain unchanged: any message that was in flight and not deleted will become visible again and be redelivered, potentially causing the same duplicate side effect on the restarted processor.

About these practice questions

This SAA-C03 question is part of Courseiva's 935-question bank — original exam-style content with full explanations and wrong-answer analysis, never real exam questions or exam dumps. 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.