NainLegacyModernizer

Replace a legacy system one route at a time, with no downtime.

Move traffic route by route

Slide to send the orders route from the old system to the new API.

Diagram: a client sends requests through a gateway to the legacy monolith or the modern API. Client YARP gateway Modern API (.NET 10) Legacy monolith /api/orders/* /api/invoices/*

Routes

Illustration. The gateway in this repository routes by path; the percentage is only for this demo.

Shadow run: same request, two answers

Both systems receive the request. Only the answers are compared.

Scenario

Sample report: not ready Sample report: ready

Legacy response

Modern response

Parity Matched

Differences

Synthetic data taken from the shadow auditor tests in this repository.

How a migration goes

  1. Carve out

    Pick one route and build it in .NET 10.

  2. Shadow run

    Send the same request to both systems.

  3. Compare

    Check that both answers match.

  4. Cut over

    Point the gateway at the new API.