Learning Objectives
By the end of this chapter, you will be able to:
- Select an appropriate architectural pattern (event-driven, microservices, monolithic, choreography, orchestration, fanout) for a given application requirement.
- Implement idempotent handlers that survive retries from SQS, Step Functions, EventBridge, and API Gateway clients.
- Distinguish stateful from stateless components and place state in the right AWS service.
- Translate "tight" and "loose" coupling into specific AWS service combinations.
- Choose between synchronous request/response, asynchronous fire-and-forget, and stream-based patterns for a given workload.
- Apply fault-tolerant design patterns including retries with exponential backoff, circuit breakers, dead-letter queues, and bulkheading.
- Compare eventually consistent and strongly consistent reads in DynamoDB, S3, RDS, and Aurora and select the correct mode.
- Design REST and GraphQL APIs in Amazon API Gateway and AWS AppSync, including private VPC integrations from Lambda and caching layers.
Executive Summary
- AWS application development is a continuous trade-off between coupling, consistency, and cost; every service choice resolves at least two of those three axes.
- The exam tests pattern recognition more than syntax: given a paragraph of requirements, you must name the service combination that satisfies durability, throughput, and consistency without over-engineering.
- DynamoDB, Lambda, API Gateway, SQS, SNS, EventBridge, and Step Functions are the spine of the curriculum. Every other service in the exam guide is tested through its interaction with this core set.
- Idempotency, retries, and dead-letter queues recur in nearly every scenario question; building them in from the first line of code is the practitioner habit that separates a pass from a borderline fail.
Assumptions
- You have shipped at least one application that calls AWS APIs from the AWS CLI or an AWS SDK, and you can read Python and Node.js code at the level used by the official AWS samples.
- All examples use a fictional retail platform called
acme-retailwith a single account, single Region (us-east-1) deployment unless the example explicitly calls out a multi-Region pattern. - API calls in code samples are written for
boto3(Python) and the AWS SDK for JavaScript v3 (Node.js); names of services and resources are taken verbatim from the AWS documentation.
