SAP-C02 - Design for New Solutions (29% of the exam) - 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.

Exam traps in Design for New Solutions

Answers that look right on this material and are not. Each one is a distractor from a different question in the SAP-C02 bank for this domain.

  • Attach all producer and consumer VPCs to a central AWS Transit Gateway shared through Resource Access Manager, propagate the producer's routes to every consumer, and use security groups on the API subnet to limit which consumer accounts can send traffic to the Lambda-backed service.

    Why it is wrong: A Transit Gateway can connect the accounts privately, but it joins entire VPC networks and propagates routes between them, which exposes far more than the single API and contradicts the no-route-propagation and one-service-only constraints in the requirement.

  • Provision an Amazon Aurora global database with one writer Region and two read-only secondaries, deploy the API Gateway and Lambda stack into all three Regions, and front clients with a Route 53 failover record set.

    Why it is wrong: An Aurora global database accepts writes in only one Region at a time, so the two secondaries cannot serve local writes and a failover record still implies an active-passive cutover, missing the all-Region write requirement.

  • Have the order service invoke each downstream consumer directly with the AWS SDK, calling the inventory function, the fulfilment service, and the analytics endpoint in sequence whenever an order is placed.

    Why it is wrong: Direct SDK invocation hard-codes every consumer into the producer, so each new or removed subscriber forces a change to the order service, which is exactly the tight coupling the teams want to avoid.

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