Replatforming a 12-year-old operations system without freezing the roadmap
Replaced a Rails monolith with a service-oriented platform over 14 months — zero downtime, ten new features shipped during the migration.
The situation
What was happening before we got involved.
A twelve-year-old Rails application that had outlasted three different rounds of "we'll rewrite it next year". Every operational change cost more than the last. The team that wrote it had moved on. Two recent attempts at a rewrite had stalled before reaching production. We were brought in not to write the rewrite, but to plan the smallest credible sequence of changes that would land it incrementally — without freezing the feature roadmap the business depended on.
What we did
The decisions we made, and why.
- 01
Started with what was load-bearing
Spent the first three weeks profiling, reading code, and talking to the people who used the system every day. Found that 80% of the operational pain came from three specific subsystems — and that the rest of the monolith was working fine.
- 02
Sequenced the migration around revenue
Built a roadmap where each phase landed something the business could measure. No phase was longer than six weeks. No phase was a rewrite for its own sake. The features the business had been asking for shipped alongside the migration, not after it.
- 03
Strangler-fig over rewrite
New services took over from the monolith one capability at a time, with a routing layer that let us shift traffic gradually. We never had a "switchover weekend" — because there was nothing to switch.
- 04
Handed the work back as we went
The in-house team paired with our engineers from week one. By month nine they were shipping in the new architecture without us. By month fourteen we were off the contract and on speed dial.
The outcome
What changed, in production.
The legacy monolith now handles only the parts of the business it was always best at. Three new services run the rest, scaled independently, owned by the in-house team. The customer-facing parts of the system did not go down once during the migration — measured against an SLA the business had been quietly worried about for years.
-
0 minutes
Customer-facing downtime
-
10
New features shipped during migration
-
100%
In-house ownership at handover
“They came in like senior peers, not a vendor. Within a week they were challenging assumptions our own team had stopped questioning — and the system they shipped is still the one we run on, two years later.”
Working on something similar? Let's talk.
Liverpool, UK. Available across the UK and remote.