Synchronous decoupling separates request-handling components while keeping the caller waiting for a response. A load balancer lets clients reach backend instances without knowing which instance serves each request. section 14.0 section 14.3
A load balancer provides the central implementation pattern:
- Receives requests and distributes them across backend instances. section 14.0
- Checks backend health periodically and stops routing traffic to failed instances. section 14.3 section 16.1.2
- Works with Auto Scaling across availability zones so replacement instances can receive traffic after failures. section 16.1.2 section 17.4
Fault-tolerant web application
Place an Elastic Load Balancer in front of EC2 instances distributed across multiple subnets and availability zones. If one instance fails, health checks remove it from rotation while an Auto Scaling group replaces it. Unlike asynchronous decoupling with SQS, the request still requires an available backend response. section 16.1.2 section 14.3
Shows how an Auto Scaling group and Elastic Load Balancer provide redundant, synchronously decoupled EC2 instances. section 16.1.2
