Multi-Region Failover
Active-passive setup with health monitoring, replication, and automatic promotion
graph TD
classDef yellow fill:#FFFDE7,stroke:#1A1A1A,stroke-width:2px;
classDef blue fill:#E3F2FD,stroke:#1A1A1A,stroke-width:2px;
classDef green fill:#E8F5E9,stroke:#1A1A1A,stroke-width:2px;
classDef purple fill:#F3E5F5,stroke:#1A1A1A,stroke-width:2px;
classDef teal fill:#E0F7FA,stroke:#1A1A1A,stroke-width:2px;
classDef orange fill:#FFF3E0,stroke:#1A1A1A,stroke-width:2px;
classDef note fill:#FFF9C4,stroke:#FBC02D,stroke-dasharray:4;
Users([Global Users]):::yellow
DNS[DNS / Global LB]:::teal
subgraph Primary ["Primary Region — us-east-1 (Active)"]
LB1[Load Balancer]:::blue
App1[App Servers]:::blue
DB1[(Primary DB)]:::green
Cache1[(Redis Primary)]:::teal
Health1[Health Check]:::orange
end
subgraph Secondary ["Secondary Region — eu-west-1 (Standby)"]
LB2[Load Balancer]:::blue
App2[App Servers]:::blue
DB2[(Replica DB)]:::green
Cache2[(Redis Replica)]:::teal
Health2[Health Check]:::orange
end
Monitor[Monitoring & Alerts]:::purple
Failover[Failover Controller]:::purple
Users --> DNS
DNS -->|active| LB1
DNS -.->|failover| LB2
LB1 --> App1
App1 --> DB1 & Cache1
LB2 --> App2
App2 --> DB2 & Cache2
DB1 -->|replication| DB2
Cache1 -->|replication| Cache2
Health1 & Health2 --> Monitor
Monitor --> Failover
Failover -->|promote| DB2
Failover -->|reroute| DNS