Banking Multi-Region Failover With Zero Data Loss Requirements
Getting to Zero Data Loss Without Pretending Physics Does Not Apply
Boards ask for zero data loss and zero downtime, and technology teams write both into a resilience document because arguing feels like admitting weakness. Then a region degrades, the failover runs, and the institution discovers that a synchronous target three thousand kilometres away had been quietly demoted to asynchronous months earlier because write latency was hurting the payment path.
Zero data loss is achievable and it has a price denominated in latency, distance, and complexity. Designing banking multi region failover RPO targets that hold under real conditions means paying that price deliberately for the workloads that need it, and being honest about the ones that do not.
What does zero data loss actually require?
That no transaction is acknowledged to a client until it is durably recorded in more than one location.
That single sentence contains the whole trade-off. Acknowledgement cannot precede durability in a second location, so every commit pays the round trip to that location. There is no configuration that removes this, only choices about how far apart the locations are and which workloads accept the cost.
What is the physics constraint?
Signal propagation adds roughly a millisecond per hundred kilometres each way, before any equipment overhead.
Light in fibre travels at around two thirds of its vacuum speed, and real paths are not straight lines. A synchronous replica three hundred kilometres away adds several milliseconds of unavoidable round-trip latency to every write, and one at fifteen hundred kilometres adds tens of milliseconds. That is fine for many workloads and fatal for a payment authorisation path with a hard external timer, which is precisely the tension described in this guide to FedNow and RTP participation, where the scheme response budget leaves little room for a distant synchronous commit.
Which workloads genuinely need an RPO of zero?
Ledger postings, payment instructions, and anything irreversible once acknowledged.
| Workload | Realistic RPO | Reasoning |
|---|---|---|
| Ledger postings and balances | Zero | A lost posting is an unrecoverable financial discrepancy |
| Accepted payment instructions | Zero | Client was told the payment was accepted |
| Authorisation decisions with scheme obligations | Zero to seconds | Irreversible and externally visible |
| Customer profile and entitlement changes | Seconds | Recoverable from source or reissued |
| Fraud model features and scores | Seconds to minutes | Recomputable |
| Analytics, reporting, data warehouse | Minutes to hours | Derived data, rebuildable |
| Logs and telemetry | Minutes | Volume makes synchronous replication uneconomic |
Classifying honestly is the first cost saving available, because institutions that apply zero RPO uniformly spend heavily and slow the paths that matter most.
Is your payment path paying synchronous latency to protect data that could be rebuilt?
Talk to Digiqt about RPO classification and replication design
Which replication models are available?
Six, trading data loss against latency, distance, and complexity.
| Model | Data loss | Write latency cost | Suits |
|---|---|---|---|
| Asynchronous | Seconds to minutes of loss | None | Derived data, analytics, far geographies |
| Semi-synchronous | Usually zero, not guaranteed | Partial round trip | Middle ground, often misunderstood as zero |
| Synchronous two sites | Zero between the pair | Full round trip | Metro or near-region pairs |
| Synchronous with witness or arbiter | Zero, with safe tie-breaking | Full round trip | Banking standard for critical stores |
| Consensus or quorum databases | Zero once quorum acknowledges | Round trip to quorum majority | Modern distributed stores across nearby regions |
| Application-level dual write | Inconsistent under failure | Two writes | Almost never appropriate |
Where does synchronous replication break down?
At distance, and under partial failure where the replica is slow rather than absent.
The failure everyone plans for is a replica that disappears, and the failure that actually causes incidents is a replica that responds slowly. A degraded synchronous target drags every commit with it, so the primary appears to fail while remaining technically available. Decide in advance whether the system prioritises availability by dropping to asynchronous or prioritises durability by refusing writes, make that behaviour explicit and alarmed, and never let it be an emergency judgment call. Silent demotion to asynchronous is the single most common reason a bank believes it has zero RPO and does not.
Why is application-level dual write usually wrong?
Because it has no atomicity, so a failure between the two writes leaves inconsistent state with no arbiter.
Writing to two regions from application code looks straightforward and produces divergence that nobody can reconcile afterwards, since there is no transaction spanning both and no authority on which one is correct. Where a genuine cross-store guarantee is needed, use replication provided by the data platform, or use an event log as the source of truth with derived stores rebuilt from it. The one legitimate variant is writing to a durable log synchronously and projecting asynchronously, which keeps a single authoritative order.
Why is RTO usually harder than RPO?
Because replication is a product feature and failover is an organisational decision.
Zero RPO can be bought. Low RTO has to be engineered across detection, decision, promotion, fencing, downstream reconnection, and capacity, and it fails on whichever of those is weakest. Most institutions have solid replication and a failover process that takes hours because three of those steps require a person who has to be found.
How should the failover decision be made?
Automatic detection and fencing, with a time-limited human decision on final promotion for ledger stores.
Automate detection, quorum evaluation, and fencing of the failed primary, since those need to happen in seconds and are deterministic. For promoting a new primary on a ledger, many banks keep a human in the loop, because an incorrect automatic promotion during a network partition is worse than a short delay. If you do that, bound it: a named on-call role, a defined maximum decision time, pre-authorised criteria, and an automatic path if nobody responds. Unbounded human decisions are how a thirty-second technical failover becomes a two-hour outage.
How do you prevent split brain?
With quorum across three locations and hard fencing of the old primary.
Two sites cannot distinguish a partition from a peer failure, which is why a third location holding a witness or arbiter is required even when you only intend to run in two regions. The third site needs no data capacity, only independence, and it must not share the failure domain that could partition the pair. Then fence properly: the demoted primary must be prevented from accepting writes, by network isolation, credential revocation, or storage-level fencing, before the new primary is promoted. A ledger that accepted writes in two places for ninety seconds creates a reconciliation problem that outlasts the incident by months.
Do you have an independent third location capable of breaking a tie?
What breaks during failover that nobody tests?
In-flight work, identifier generation, session state, downstream reconnection, and capacity.
| Failure mode | What happens | Mitigation |
|---|---|---|
| In-flight transactions | Accepted but incomplete work in unknown state | Idempotency keys, durable intent log, reconciliation on recovery |
| Sequence and identifier generation | Duplicate or reused identifiers across regions | Region-partitioned or globally coordinated generation |
| Session and authentication state | Customers logged out or stuck mid-journey | Replicated or reconstructible session state |
| Downstream reconnection | Consumers hold stale endpoints or connection pools | Health-aware clients, short DNS TTLs, tested reconnection |
| Capacity in the surviving region | Insufficient headroom for full load | Reserved capacity, load shedding plan, tested at full volume |
| Batch and scheduled jobs | Jobs run twice or not at all | Region-aware scheduling with leader election |
| Third-party callbacks | Provider still calls the failed region | Registered endpoints that follow failover, provider testing |
How do you handle in-flight payments?
With a durable intent record, idempotency, and a reconciliation pass that runs automatically after recovery.
A payment accepted but not confirmed at the moment of failure is the most consequential item in the list, because both duplicating and dropping it are unacceptable. Record intent durably before any external call, key every external interaction idempotently, and treat unknown outcomes as a first-class state to be resolved after failover rather than as an error to be retried blindly. Then run reconciliation against the rail and the ledger as part of the recovery runbook, not as a follow-up task. Institutions that skip this find the problem days later in a break report.
How do you test failover honestly?
Frequently, unannounced, at full load, and including the messy parts.
| Test | What it proves | Cadence |
|---|---|---|
| Planned failover with notice | The mechanism works | Quarterly minimum |
| Unannounced failover in business hours | Detection, decision, and people | Twice yearly for critical services |
| Failover at peak load | Capacity in the surviving region | Annually |
| Degraded replica scenario | Behaviour when the replica is slow, not absent | Annually |
| Partition scenario | Quorum, fencing, split-brain prevention | Annually |
| Failback | Returning without a second outage | Every exercise, since this is often untested |
Failback deserves specific attention. Many institutions can fail over and have never returned cleanly, which means every real event leaves them running in a secondary configuration for weeks. Test the return path as part of every exercise. Regular, boring failover is the goal, since a mechanism exercised quarterly is one the team trusts at 3 a.m., and the broader recovery discipline is covered in this guide to disaster recovery for mission-critical platforms and in disaster recovery for core systems.
What does this actually cost?
Roughly double infrastructure for active-passive, more for active-active, plus latency and engineering complexity.
Synchronous replication requires capacity that is idle most of the time or an active-active design that costs more to build and reason about. Add cross-region bandwidth, the third site, and the engineering effort to make failover routine. Present the cost against the tolerance it protects rather than as an infrastructure line item, because the decision belongs to whoever owns the service and its tolerance. That framing is exactly what mapping critical business services and setting impact tolerances provides, and the tolerance-based case is far more likely to be funded than an architectural preference.
How does this connect to regulatory expectations?
Supervisors care whether critical services stay available and recoverable, not which replication mode you chose.
The Basel Committee's Principles for operational resilience, published in March 2021, take a principles-based approach to withstanding operational disruption, and CPMI-IOSCO's guidance on cyber resilience for financial market infrastructures, published in June 2016, frames the expectation as anticipating threats, responding rapidly, and achieving faster and safer target recovery objectives. For payment participants there is also a hard operational reality: instant rails run continuously, with the FedNow Service operating a 24-hour business day every day of the week including weekends and holidays, so a maintenance window that once absorbed failover work no longer exists. Note too that failover protects against infrastructure failure and not against corruption, since synchronous replication faithfully copies corrupted data to both regions, which is why immutable isolated copies remain necessary as covered in ransomware resilience and immutable backup design.
Which metrics prove the capability?
Tested failover time, replication lag and mode, unannounced test results, failback success, and capacity headroom.
Report tested failover time per critical service rather than designed RTO, since the difference is your real exposure. Monitor replication lag continuously and alarm on any silent transition from synchronous to asynchronous, because that transition is the most dangerous undetected state in this whole design. Track results from unannounced exercises separately from planned ones, as the gap measures your operational readiness rather than your technology. Record failback success rate. And measure surviving-region capacity headroom at peak, since a failover into insufficient capacity converts a regional outage into a total one. The underlying RTO and RPO discipline, including how to derive targets rather than assert them, is set out in this guide to disaster recovery planning with RTO and RPO.
Zero data loss is an engineering commitment with a latency invoice attached, and the institutions that hold it are the ones that scoped it narrowly, put a witness in a third location, fenced their old primaries properly, and failed over often enough that nobody hesitates.
Frequently Asked Questions
Is zero data loss across regions actually achievable?
Yes, with synchronous replication, and it costs write latency proportional to distance. The physics is fixed, so the design question is which workloads justify paying that latency.
How much latency does distance add?
Signal propagation alone adds roughly one millisecond per hundred kilometres each way, before switching and protocol overhead, and every synchronous commit pays the round trip.
Which workloads genuinely need an RPO of zero?
Ledger postings, payment instructions, and anything irreversible once acknowledged. Analytics, reporting, and derived data almost never justify synchronous replication.
Why is RTO usually harder than RPO?
Because replication is a product feature while failover is an organisational decision involving detection, quorum, fencing, downstream reconnection, and capacity in the surviving region.
Why do you need a third site for two-region failover?
To break ties. With two sites, neither can safely distinguish a network partition from the other's failure, so a witness or arbiter elsewhere is what prevents split brain.
What is the most commonly untested part of failover?
In-flight work. Messages accepted but not completed, sequence generators, session state, and downstream reconnection behaviour cause most of the damage during real failovers.
Should failover be automatic?
For detection and fencing, yes. For the final promotion decision on a ledger, many banks keep a human in the loop with a strict time limit, because an incorrect automatic promotion is worse than a delay.
How often should failover be tested?
Frequently enough to be routine, which for critical services means at least quarterly, including unannounced exercises rather than only scheduled ones with everyone watching.



