β€œOld” system is put behind an intermediary facade. Then, over time external replacement services for the old system are added behind the facade.

New requirements are implemented in the new component. The work on the old component is stopped (except for hotfixes/emergencies). Eventually all functionality should be migrated to the new component, and the legacy codebase should be deleted.

Usually, the strangler pattern is used with the Facade Pattern: a thin abstraction layer to forward requests to either legacy or modern system. When migration from the legacy system is completed, the facade is removed as it’s no longer necessary.

If both legacy and modern system need to access DB, a single database can be used to reduce complexity.