SAA-C03 - Design Resilient Architectures - Section 2.4

Orchestrate decoupled, serverless workflows using AWS Step Functions, AWS Lambda and asynchronous fan-out patterns.

Describe AWS Step Functions as a visual workflow orchestrator that coordinates sequences of Lambda functions and other services, managing state, retries, and error handling between steps. Apply the fan-out pattern using SNS or parallel Step Functions branches to execute independent tasks concurrently, and configure dead-letter queues to capture failed Lambda invocations or SQS messages for later inspection.

AWS Step FunctionsAWS LambdaFan-out patternDead-letter queues

Practice question for this objective

Free sampleDesign Resilient Architecturesmedium

An events platform must trigger several independent serverless consumers in parallel whenever a ticket is sold: one updates analytics, one issues a confirmation, and more may be added later without changing the publisher. Each consumer runs on AWS Lambda, must process and retry on its own pace, and any message a consumer cannot process after its retries must be set aside automatically for later inspection rather than lost. Which two design choices together meet these requirements? Select TWO.

  • APublish each sale to an Amazon SNS topic and subscribe one Amazon SQS queue per consumer, so each consumer reads from its own queue at its own rate. Correct
  • BHave the publisher invoke each consumer Lambda function synchronously in a loop so every consumer is called once on each sale.
  • CPublish each sale to a single shared Amazon SQS standard queue that all of the consumer Lambda functions poll together for work.
  • DConfigure a dead-letter queue on each consumer's Amazon SQS queue and set a maxReceiveCount so messages that exceed the retry limit move there. Correct
  • EOn a processing failure publish the message to an Amazon SNS topic so an operator is emailed, then delete the original message from the queue.
Serverless fan-out with independent retry uses SNS to one SQS queue per consumer, and a per-queue dead-letter queue captures messages that exhaust their retries. SNS delivers each published message to every subscribed SQS queue, so consumers get independent copies and process at their own pace while new subscribers attach without publisher changes. A redrive policy on each queue with maxReceiveCount diverts poison messages to a dead-letter queue after the retry limit, retaining them for inspection instead of blocking the queue or dropping data.

Why A is correct: SNS fan-out to one SQS queue per consumer gives every consumer a full, independent copy of each message and lets new subscribers be added without changing the publisher.

Why B is wrong: Direct synchronous invocation couples the publisher to every consumer and forces code changes whenever a consumer is added or removed, which the requirement explicitly forbids.

Why C is wrong: A shared queue lets only one consumer delete each message, so consumers compete for messages rather than each receiving its own copy, breaking the fan-out requirement.

Why D is correct: A redrive policy with maxReceiveCount automatically moves a poison message to the dead-letter queue after the configured retries, preserving it for inspection instead of losing it.

Why E is wrong: Emailing on failure notifies an operator but deleting the message loses the payload, whereas the requirement is to retain failed messages automatically for later inspection.

See more SAA-C03 practice questions, answers explained.

More in this domain

Back to all Design Resilient Architectures objectives, or the SAA-C03 cert hub.

Examworthy is not affiliated with or endorsed by Amazon Web Services. Original, blueprint-aligned practice material only.