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