Multi-Region Architecture and Disaster Recovery

By Oleksandr Andrushchenko — Published on
0 Likes
0 Dislikes
Multi-Region Architecture and Disaster Recovery
Multi-Region Architecture and Disaster Recovery

Multi-region architecture addresses a failure boundary that multi-zone systems cannot: the loss or severe degradation of an entire cloud region. Regional outages are uncommon, but when they occur they can affect compute, networking, managed databases, queues, control planes, and other services simultaneously.

Running infrastructure in a second region does not automatically provide disaster recovery. Data must be replicated, traffic must have a failover path, dependencies must exist in the recovery region, capacity must be available, and applications must tolerate the consistency effects introduced by geographic replication.

The correct design starts with two business requirements: Recovery Time Objective (RTO), which defines how quickly service must recover, and Recovery Point Objective (RPO), which defines how much recent data can be lost. These requirements determine whether backups are sufficient or whether continuously running multi-region infrastructure is justified.

Table of Contents

RTO, RPO, and Regional Failure

Disaster recovery architecture should not begin by selecting replication technology. It should begin by defining what recovery means for the application.

RTO defines the maximum acceptable duration between a disaster and restoration of the required service. An RTO of four hours permits a fundamentally different architecture from an RTO of five minutes.

RPO defines the maximum acceptable amount of recent data that may be lost. If the RPO is 15 minutes, restoring a database backup that is several hours old is insufficient even if application servers can be restored immediately.


Normal Operation                  Disaster
      |                              |
      |                              X
      |                              |
------|------------------------------|-------------------- Time
      |<--------- RPO ---------------|
                                     |
                                     |<------ RTO ------->|
                                     |
                                  Failure             Service
                                                      Restored

The two objectives address different dimensions. Fast infrastructure recovery does not guarantee low data loss, and continuous data replication does not guarantee fast application recovery.

Requirement Question Primary Architecture Impact
RTO How long can the service remain unavailable? Standby capacity, automation, routing, recovery procedures
RPO How much recent data can be lost? Backup frequency, replication mode, write architecture
Availability How often can normal service fail? Redundancy and failure isolation
Recovery Capacity How much traffic must the recovery region handle? Standby compute and dependency capacity

Disaster recovery is related to high availability but solves a larger failure problem. Multi-zone architecture protects against localized infrastructure failures inside a region. More about that architecture can be found here: Designing Highly Available Cloud Systems.

Disaster Recovery Strategies

Disaster recovery strategies form a spectrum between low-cost infrastructure with slower recovery and continuously running infrastructure with faster recovery. Selecting the most expensive strategy by default wastes resources, while selecting the cheapest strategy without considering RTO and RPO creates unacceptable business risk.

Four common patterns are backup and restore, pilot light, warm standby, and active-active multi-region operation.

Backup and Restore

Backup and restore keeps durable copies of critical data outside the primary failure boundary but does not maintain a fully operational secondary application environment.

After a disaster, infrastructure is created or restored, databases are recovered from backups, applications are deployed, dependencies are validated, and traffic is redirected.


Normal Operation

Region A
+------------------------+
| Application            |
| Database               |
| Storage                |
+-----------+------------+
            |
            | backups
            v
     Independent Backup
          Storage


After Disaster

Backup
  |
  v
Restore Database
  |
  v
Deploy Infrastructure
  |
  v
Validate
  |
  v
Route Traffic

Advantages:

  • lowest standby infrastructure cost;
  • simple architecture during normal operation;
  • appropriate for workloads that tolerate hours of recovery time;
  • backups also protect against logical corruption and accidental deletion.

Disadvantages:

  • longest RTO;
  • recovery depends heavily on automation and tested procedures;
  • restore duration increases with dataset size;
  • capacity shortages during a regional incident can delay provisioning.

When to use: internal tools, development systems, batch platforms, low-criticality applications, and systems where several hours of downtime are acceptable.

Pilot Light

A pilot-light architecture continuously maintains the most difficult stateful components in the recovery region while application compute remains absent or minimal.

For example, database replication and object replication may run continuously while API and worker fleets are created only during disaster recovery.


Region A - Active               Region B - Pilot Light

+------------------+            +------------------+
| Load Balancer    |            | Infrastructure   |
| APIs             |            | definitions      |
| Workers          |            |                  |
| Database --------+----------->| Database Replica |
| Object Storage --+----------->| Object Replica   |
+------------------+            +------------------+

Advantages:

  • faster recovery than restoring all state from backups;
  • lower cost than maintaining complete standby compute;
  • critical data can remain continuously replicated;
  • infrastructure automation can create application capacity when required.

Disadvantages:

  • compute still requires provisioning during recovery;
  • recovery infrastructure may not be exercised continuously;
  • replication problems can remain unnoticed without monitoring;
  • RTO depends on deployment and scaling speed.

When to use: applications requiring relatively low RPO but able to tolerate tens of minutes or longer for application recovery.

Warm Standby

Warm standby maintains a functional but smaller production environment in another region. Data is continuously replicated, and the secondary application stack is already running.

During failover, traffic moves to the secondary region and capacity scales toward normal production levels.


               Global Traffic Layer
                       |
             +---------+---------+
             |                   |
             v                   v
      Region A - Active    Region B - Standby
      +--------------+     +--------------+
      | 12 API       |     | 3 API        |
      | 20 Workers   |     | 4 Workers    |
      | Primary DB --+---->| Replica DB   |
      +--------------+     +--------------+

Advantages:

  • significantly lower RTO than pilot light;
  • application configuration is continuously deployed and testable;
  • recovery requires scaling rather than building the entire environment;
  • regular traffic or synthetic tests can validate the standby stack.

Disadvantages:

  • higher continuous infrastructure cost;
  • standby capacity may be insufficient during sudden failover;
  • database promotion and traffic switching still require coordination;
  • configuration drift between regions must be prevented.

When to use: customer-facing systems with recovery targets measured in minutes but without a requirement for simultaneous multi-region traffic.

Multi-Region Active-Active

Active-active architecture serves production traffic from multiple regions simultaneously. This provides the fastest potential regional failover because healthy regions are already receiving traffic.


                     Global Traffic Layer
                       /              \
                      /                \
                     v                  v
              Region A              Region B
           +-------------+       +-------------+
           | API         |       | API         |
           | Workers     |       | Workers     |
           | Data A <----+------> Data B      |
           +-------------+       +-------------+

Advantages:

  • very low infrastructure failover time;
  • both regions are continuously exercised;
  • traffic can be routed closer to users;
  • regional capacity can contribute during normal operation.

Disadvantages:

  • highest architecture and operational complexity;
  • multi-region writes create difficult consistency problems;
  • cross-region communication increases latency and transfer cost;
  • remaining regions must still absorb traffic after failure;
  • split-brain and conflict resolution become critical concerns.

When to use: systems with strict regional availability requirements, geographically distributed users, and business requirements that justify the additional consistency and operational complexity.

Strategy Typical RTO RPO Potential Standby Cost Complexity
Backup and Restore Hours Depends on backup frequency Low Low to medium
Pilot Light Tens of minutes to hours Low with continuous replication Low to medium Medium
Warm Standby Minutes Low with continuous replication Medium Medium to high
Active-Active Seconds to minutes Potentially very low High High

Replicating Data Across Regions

Compute can often be recreated quickly from deployment artifacts. Data is usually the hardest part of regional recovery. Database contents, uploaded files, queue state, encryption configuration, and other durable state must survive the primary region.

Geographic distance introduces unavoidable network latency. This creates a fundamental trade-off between write latency, consistency, and availability.

Asynchronous Replication

A common architecture commits a transaction in the primary region and replicates it to another region asynchronously.


Client
  |
  v
Region A Primary
  |
  | local commit
  v
Success Response
  |
  | asynchronous replication
  v
Region B Replica

This keeps user-visible write latency low because the application does not wait for an inter-region network round trip. However, replication creates an RPO window.

Suppose the primary region acknowledges transaction T3 before it reaches the secondary region:


Primary Region       Secondary Region

T1 committed ------> T1 replicated
T2 committed ------> T2 replicated
T3 committed --X

                 Region failure

After promotion, T3 may be missing even though the client previously received a successful response.

Replication lag must therefore be treated as a production reliability metric. Alerting only on whether the replica is technically connected is insufficient.

Important metrics include:

  • replication delay in seconds;
  • bytes or transactions awaiting replication;
  • replication errors;
  • replica storage capacity;
  • last successfully applied transaction;
  • cross-region network throughput.

Multi-Region Writes

Allowing writes in multiple regions removes the single writable-region dependency but introduces conflict and coordination problems.

Consider two regions updating the same inventory record during a network partition:


Region A                     Region B

Inventory = 10               Inventory = 10

Sell 6                       Sell 6

Inventory = 4                Inventory = 4

        Cross-region link unavailable

Both local operations appear valid, but globally 12 units were sold from an inventory of 10. Simply merging the final value cannot reconstruct a correct result.

Multi-region write strategies may use:

  • single-writer ownership: each record or partition has one authoritative write region;
  • globally coordinated transactions: stronger consistency at the cost of inter-region latency and reduced partition availability;
  • conflict-free data structures: appropriate for limited data models where operations can be merged safely;
  • application-level conflict resolution: business rules resolve concurrent updates after replication.

Active-active compute does not require active-active writes. Many systems serve reads and stateless processing from multiple regions while routing consistency-sensitive writes to a designated region.

Traffic Routing and Failover

Once a recovery region is operational, clients must be redirected to it. Traffic switching may happen through DNS, global load balancing, anycast routing, or provider-specific global traffic systems.

DNS-based failover is simple but not instantaneous. Recursive resolvers and clients can cache records, so changing a DNS target does not guarantee that all clients immediately use the new region.

Global traffic layers can perform health-aware routing and direct clients to healthy regions without relying entirely on manual DNS changes.


                       Client
                          |
                          v
                Global Traffic Layer
                     /         \
              healthy           unhealthy
                 |                  X
                 v
             Region B          Region A

Health checks used for regional failover must test meaningful application functionality. A load balancer returning HTTP 200 does not prove that checkout, authentication, or database access works.

At the same time, overly sensitive failover logic can create false regional failovers. A short network disturbance should not necessarily trigger database promotion and global traffic movement.

Failover decisions should consider multiple signals such as:

  • regional API success rate;
  • tail latency;
  • database availability;
  • critical dependency health;
  • synthetic transactions;
  • duration of degradation.

Failback deserves equal attention. Moving traffic back to the original region requires determining which dataset is authoritative and synchronizing changes written during the disaster. Failback can be more complicated than failover.

Production Design Example

Consider a logistics platform that creates shipments, communicates with external carriers, stores shipping documents, and processes tracking events. The business requires a low RPO and service restoration within minutes after a complete regional outage.

A warm-standby architecture provides a reasonable balance between recovery speed and operational complexity.


                         Global Traffic
                              |
                    +---------+---------+
                    |                   |
                    v                   v
              Region A             Region B
              PRIMARY              STANDBY

          +--------------+      +--------------+
          | Load Balancer|      | Load Balancer|
          +------+-------+      +------+-------+
                 |                     |
          +------+-------+      +------+-------+
          | API Fleet    |      | Small API    |
          | Workers      |      | Fleet        |
          +------+-------+      +------+-------+
                 |                     |
                 v                     v
          +--------------+      +--------------+
          | Primary DB   |----->| DB Replica   |
          +--------------+      +--------------+
                 |
                 +-------------> Object Replica
                 |
                 v
              Queue

Region A handles normal production traffic. Region B runs enough compute to execute health checks, validate deployments, and support limited production testing. Database and object-storage replication run continuously.

Queue strategy requires special consideration. If queued jobs exist only in Region A, a regional outage may strand pending workflows. Depending on business requirements, applications can replicate the underlying business state and reconstruct jobs, use a cross-region messaging design, or maintain an application outbox from which unprocessed work can be recreated.

External carrier calls use idempotency keys. If recovery reconstructs a shipment job that was already processed immediately before the regional failure, retrying the operation should not create a duplicate shipment.

Infrastructure Example

The following CloudFormation example shows one piece of the recovery design: replicating objects to a bucket in another region. CloudFormation stacks for each region would normally be deployed independently through the same infrastructure pipeline.

Resources:
  ShipmentDocumentsBucket:
    Type: AWS::S3::Bucket
    Properties:
      VersioningConfiguration:
        Status: Enabled

      ReplicationConfiguration:
        Role: !GetAtt ReplicationRole.Arn
        Rules:
          - Id: DisasterRecoveryReplication
            Status: Enabled
            Priority: 1
            Filter:
              Prefix: ""
            Destination:
              Bucket: !Ref RecoveryBucketArn
              StorageClass: STANDARD

  ReplicationRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: "2012-10-17"
        Statement:
          - Effect: Allow
            Principal:
              Service:
                - s3.amazonaws.com
            Action:
              - sts:AssumeRole

Replication should not be assumed healthy merely because it is configured. Monitoring should verify replication failures and delay. Critical recovery data also needs lifecycle and deletion policies that prevent accidental deletion in the primary region from immediately destroying the only useful recovery copy.

Infrastructure definitions should be identical or intentionally parameterized across regions. Manual secondary-region configuration creates drift that often becomes visible only during disaster recovery.

Regional Failure Flow

Suppose the primary region experiences a sustained outage affecting application traffic and database availability.

  1. Detect: synthetic transactions and regional health metrics confirm sustained failure.
  2. Stop unsafe writes: prevent ambiguous writes to a partially reachable primary environment when possible.
  3. Measure replication state: determine the latest transaction available in the recovery region.
  4. Promote data: promote the recovery database to the writable primary role.
  5. Scale compute: increase standby API and worker capacity to production requirements.
  6. Validate dependencies: confirm secrets, certificates, queues, object storage, external integrations, and database connectivity.
  7. Switch traffic: route clients to the recovery region.
  8. Monitor: watch error rate, latency, database load, queue backlog, and capacity saturation.

Automation should handle predictable mechanical steps, but extremely destructive transitions such as promoting an asynchronous replica can justify a controlled approval step. Automatic failover without reliable failure detection can create two writable primaries and produce a more serious data incident than the original outage.

Recovery procedures should specify exactly which operations are automatic and which require authorization.

Common Mistakes

Multi-region systems often fail during disasters because infrastructure exists in another region but the complete recovery path has never been validated.

Mistake Production Impact Better Approach
Building multi-region infrastructure without defined RTO and RPO Cost and complexity increase without measurable recovery requirements. Define business recovery objectives before selecting a DR strategy.
Replicating compute but not all durable state The recovery region starts but cannot provide complete application functionality. Inventory databases, files, queues, secrets, configuration, and other critical state.
Assuming replication means zero data loss Recent acknowledged writes disappear after asynchronous replica promotion. Measure replication lag and align expected loss with the RPO.
Keeping standby infrastructure untested Configuration and dependency failures appear only during disaster recovery. Run synthetic transactions and regular recovery exercises against standby infrastructure.
Provisioning insufficient recovery capacity The secondary region becomes overloaded immediately after failover. Verify scale-up time and capacity against peak recovery traffic.
Ignoring cloud quotas in the recovery region Emergency scaling fails because required resources cannot be provisioned. Pre-validate regional quotas and reserved capacity requirements.
Using overly aggressive automatic regional failover Temporary degradation can create unnecessary promotion or split-brain conditions. Use multiple health signals and sustained-failure thresholds.
Ignoring queued and in-flight work Orders, payments, or background workflows disappear or execute twice. Design recoverable workflow state and idempotent processing.
Testing failover but not failback Service recovers but cannot safely return to the original region. Document and test data reconciliation and reverse-replication procedures.
Using manual configuration in the standby region Infrastructure drifts and behaves differently during recovery. Deploy both regions from version-controlled infrastructure definitions.

Production Checklist

A disaster recovery architecture is complete only when the entire recovery path has been exercised under realistic failure conditions.

  • Define RTO: specify the maximum acceptable service restoration time for each critical workload.
  • Define RPO: specify the maximum acceptable data-loss window and verify that replication or backup frequency meets it.
  • Inventory durable state: include databases, object storage, queues, secrets, configuration, certificates, and workflow state.
  • Monitor replication lag: alert on actual recovery-point degradation rather than only replica connectivity.
  • Validate regional quotas: ensure the recovery region can provision the compute, networking, and managed-service capacity required during failover.
  • Measure scale-up time: verify how long warm or pilot-light capacity takes to reach full production throughput.
  • Test traffic switching: confirm global routing moves clients to the recovery region within the required RTO.
  • Verify idempotency: ensure reconstructed or retried workflows cannot duplicate external side effects.
  • Protect recovery copies: ensure accidental deletion or corruption in the primary region cannot immediately destroy every usable copy.
  • Run synthetic transactions: continuously validate critical application paths in standby infrastructure where practical.
  • Exercise regional failure: perform scheduled disaster recovery tests and measure actual RTO and RPO.
  • Test failback: verify data reconciliation, reverse replication, traffic restoration, and cleanup before a real disaster requires them.

Conclusion

Multi-region architecture is primarily a recovery and data-consistency problem, not a compute-deployment problem. Application servers can usually be recreated quickly; preserving authoritative state and restoring safe writes are substantially harder.

Backup and restore provides the lowest cost when long recovery times are acceptable. Pilot light keeps critical state ready while delaying compute provisioning. Warm standby trades additional cost for faster recovery. Active-active architectures provide the smallest infrastructure failover window but introduce significant capacity, consistency, routing, and operational complexity.

The appropriate strategy should be determined by measurable RTO and RPO requirements. Multi-region infrastructure without tested recovery procedures can create the appearance of resilience while failing when the primary region actually becomes unavailable.

Key Takeaway: Disaster recovery is successful only when data, compute, dependencies, capacity, and traffic can move together. Define RTO and RPO first, choose the simplest architecture that meets them, continuously measure replication health, and test both failover and failback before a regional outage occurs.

Author

Enjoyed this article?

Support Oleksandr Andrushchenko

Buy me a coffee

This helps Oleksandr Andrushchenko continue creating useful content

Related articles

Comments (0)