Concept and mechanism
Gradual capability extraction can reduce each change’s size but creates a period with two systems. The Strangler Fig pattern uses routing to transfer functionality in stages. Define which system accepts each write and how others receive required state. Reversing a route does not undo data already written in the new system. Compatibility must cover APIs, events, data, and coexisting versions. An adaptation layer can translate differing legacy meanings into the new model without spreading old codes across every service. That layer has operational cost, latency, and maintenance ownership that belong in the plan.
Guided application
In a fictional case, report publication moves to a new service while calculation remains in the legacy system. Before change, identify batch consumers, capacity, observability, alerts, data retention, and return criteria. During coexistence, preserve fields used by the earlier version until migration evidence exists. A release with green unit tests can still break an overnight consumer that has not run. APS handover includes a runbook, dependency map, owners, a way to query pending operations, and reconciliation procedures. Plan decommissioning only when functionality, consumers, data, and recovery no longer depend on the old component; predicted savings do not replace that evidence.
Traffic rollback needs a separate decision about writes already accepted.
Common pitfalls
Routing as data reversal; producer tests as consumer coverage; decommissioning based only on daytime traffic.
Related topics: Boundaries and contracts · Data and distributed transactions · Resilience and load
Also deliver the ability to operate, recover, and evolve the service.
Reference: Strangler Fig pattern · Microservice architecture patterns and scoped platform examples; primary guidance consulted 2026-09-30