Learning Objectives
By the end of this chapter, you will be able to:
- Design scalable and loosely coupled architectures.
- Design highly available and/or fault-tolerant architectures.
Executive Summary
- Scalability (vertical and horizontal) combined with loose coupling (queues, event buses, load balancers) lets each component grow, fail, and deploy independently.
- High availability means a system keeps serving requests even when components fail; fault tolerance means the system does so with zero user-perceived impact. Both depend on distributing workloads across multiple Availability Zones and, where required, multiple Regions.
- Auto Scaling groups, Elastic Load Balancing, managed databases with Multi-AZ, and asynchronous messaging (SQS, SNS, EventBridge) are the primary exam-tested services for resilient design.
- Recovery objectives (RPO and RTO) drive every architectural decision around backups, replication, and failover strategy.
Assumptions
- All examples assume a single AWS Region with multiple Availability Zones unless explicitly stated otherwise.
- Service quotas referenced are default soft limits; they can be increased through an AWS Support request unless noted as hard limits.
- Networking and security primitives (VPC, subnets, security groups, IAM roles) were defined in Chapter 1 and are used here without full re-definition.
