SAP-C02 - Design for New Solutions - Section 2.5

Design an elastic, scalable architecture for varied access patterns using serverless compute, decoupling and demand-driven scaling to meet business objectives.

Design an elastic, event-driven architecture using AWS Lambda and demand-based scaling to handle variable access patterns without over-provisioning. Recognise how decoupling components through queues and event buses allows each tier to scale independently and absorb uneven load.

AWS LambdaElasticityEvent-driven architectureDemand-based scaling

Practice question for this objective

Free sampleDesign for New Solutionshard

A travel company emits an order-confirmed event that must independently reach three subsystems: a fulfilment worker fleet, an analytics pipeline, and an email service. Each subsystem must process every event at its own pace, retain its own backlog when it is slow or down, and replay its own failures without affecting the others, and new subsystems will be added later without changing the producer. The team wants a managed, durable design with minimal coupling. Which integration pattern MOST effectively meets these requirements?

  • APublish each event to an Amazon SNS topic and subscribe a separate Amazon SQS queue for each subsystem to the topic, with each subsystem polling and replaying only its own queue and its own dead-letter queue as it scales. Correct
  • BHave the producer write each event to a single Amazon SQS queue and let all three subsystems poll that same queue, relying on the visibility timeout so each subsystem picks up a share of the messages as they process.
  • CHave the producer invoke each subsystem's AWS Lambda function directly in parallel for every order-confirmed event, adding a new invocation to the producer code whenever another downstream subsystem needs to be onboarded.
  • DStream every event into an Amazon Kinesis Data Stream and have each subsystem run a consumer reading the shards independently, managing its own checkpoint position so it can reprocess records after a failure.
Use SNS-to-SQS fan-out to deliver each event durably and independently to multiple consumers that scale and replay on their own. Publishing to an SNS topic with one SQS queue subscribed per consumer gives every subsystem its own durable copy of each event, letting each drain and retry its backlog independently while new subscribers are added without changing the producer.

Why A is correct: SNS fan-out delivers a copy of every event to each subscribed SQS queue, so each subsystem gets a durable independent backlog it can drain and replay on its own, and new subsystems subscribe without touching the producer.

Why B is wrong: A single shared SQS queue load-balances messages across consumers, so a message deleted by one subsystem is gone for the others, which breaks the requirement that all three independently receive every event.

Why C is wrong: Direct parallel invocation tightly couples the producer to every consumer, gives no per-consumer durable backlog or independent replay, and forces a producer change each time a subsystem is added.

Why D is wrong: Kinesis can fan out to multiple consumers, but it needs shard capacity planning and checkpoint management and only retains records for a bounded window, which is more overhead than managed SNS-to-SQS for this event distribution.

See more SAP-C02 practice questions, answers explained.

More in this domain

Back to all Design for New Solutions objectives, or the SAP-C02 cert hub.

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