Every large organization has “that old system” — built 15-20 years ago on technologies that are no longer supported, but it works and performs a critical business function. Replacing it is scary; ignoring it is dangerous. What to do?

Why Legacy Can’t Simply Be “Turned Off”

Legacy systems typically contain years of accumulated business logic that is documented nowhere. They serve critical processes — accounting, calculations, reporting. Replacing them instantly is like changing an airplane engine during flight.

The Strangler Fig Pattern Strategy

Instead of complete replacement, the legacy system is gradually “wrapped” with new components. New functionality is built alongside the old, and the integration layer progressively switches data flows from legacy to new modules.

Practical Integration Steps

First step — building an “Anti-corruption Layer.” This is an intermediate component that translates data between old and new systems, protecting the new architecture from legacy limitations.

Second step — implementing API wrappers for legacy. Even if the old system has no API, you can build a wrapper through direct database access or file exchange.

Third step — parallel operation. Both systems run simultaneously, with data synchronized through the integration layer. This allows gradually moving users to the new system.

Real Case

In one of our projects, the client had an accounting system built on Clipper (yes, from the 1990s). Replacing it instantly was impossible — 200+ users worked in it. We built a REST API wrapper that read data from the Clipper database, connected the new web system, and over 8 months fully migrated without a single day of downtime.