The Challenge
The bank’s core banking platform had been extended, patched, and customised for over two decades. It worked — but every new product took longer to ship than the last, and the team maintaining it was shrinking as engineers with the right legacy skills retired or moved on. A full replacement was overdue, but a bank cannot simply switch off its core system for a weekend. Every migration path had to account for live customer transactions, regulatory reporting obligations, and a board that had seen other banks’ modernisation projects run over budget and over schedule.
The Approach
We treated the migration as a sequence of small, reversible steps rather than a single cutover. The new core ran in parallel with the legacy system from day one, starting with a single product line and a small percentage of customer accounts. Every transaction was processed by both systems and reconciled automatically; any mismatch was investigated before the next phase expanded.
- Domain-by-domain migration, starting with the lowest-risk product line.
- Dual-write reconciliation between old and new systems throughout the transition.
- Automated regulatory reporting validated against the legacy system at every phase.
- A rollback path kept available at every stage, used or not.
The Results
By the time the legacy core was fully retired, every customer account had moved without a single unplanned outage. The dual-write reconciliation process — built as a safety net for the migration — was valuable enough that the bank kept a version of it running as an ongoing data-integrity check between systems.
“We didn't need the team to trust the new system on day one. We needed them to trust the process for finding out if it was wrong.”
— Programme Lead, Core Modernisation