AWS Certified Solutions Architect Associate SAA-C03 Practice Question
A retail company is decomposing a monolithic application into microservices. When a new order is placed, the OrderService must publish events so that the InventoryService, BillingService, and NotificationService can each process the event independently without the OrderService needing to know about the other services. The solution must minimize operational overhead and follow AWS best practices for a scalable, event-driven architecture. Which design meets these requirements?
Publish order events to an Amazon SNS topic. Create a separate AWS Lambda function for each downstream microservice and subscribe each function to the SNS topic.
Expose a REST endpoint in each downstream microservice through Amazon API Gateway. Configure the OrderService to make HTTP POST requests to every endpoint.
Write events directly to a single Amazon SQS queue. Configure one AWS Lambda function to poll the queue and invoke the downstream services synchronously.
Store order events in an Amazon DynamoDB table. Use an Amazon EventBridge scheduled rule to query the table every minute and start AWS Step Functions workflows for processing.
Publishing order events to an Amazon SNS topic and subscribing a separate AWS Lambda function for each downstream microservice provides high-throughput fan-out, loose coupling, and serverless compute with almost no infrastructure to manage. The REST-endpoint option is tightly coupled and synchronous; the single SQS queue with one Lambda function introduces a bottleneck and additional logic; and the scheduled EventBridge query of a DynamoDB table is inefficient and not event-driven.
Ask Bash
Bash is our AI bot, trained to help you pass your exam. AI Generated Content may display inaccurate information, always double-check anything important.
What is Amazon SNS and how does it support event-driven architectures?
Open an interactive chat with Bash
How does using AWS Lambda as a subscriber to an SNS topic minimize operational overhead?
Open an interactive chat with Bash
Why is the REST endpoint option not ideal for this use case?