Skip to content
DemonstrationLogistics

Legacy Modernization

A strangler-pattern reference for moving a business-critical monolith to a service boundary set, without a migration weekend and without a feature freeze.

Industry
Logistics
Scenario
Illustrative — logistics provider
Status
In-house demonstration

This is an illustrative example of the kind of work we do, not a client engagement. The scenario is written to make the engineering decisions legible; the outcomes below describe what the system was designed to do, not verified client metrics.

Challenge

The constraint we designed against.

A system that has run the business for fifteen years contains rules that exist nowhere else, including in the heads of the people who wrote them. A rewrite fails because the specification is the running code; a big-bang cutover fails because the rollback plan is a hope. Meanwhile the delivery cost of every new feature keeps climbing, because the change surface is the whole codebase.

Solution

What we built, and why it is shaped this way.

Characterisation tests come first: the existing behaviour is pinned, including the parts that are arguably wrong, so that change becomes visible rather than accidental. A façade in front of the monolith gives one place to route from. Boundaries are then extracted in order of change frequency times blast radius, each with dual-write and shadow-read before traffic moves, and each independently reversible. Data migrates per boundary with a reconciliation job that compares old and new continuously, and the monolith is decommissioned only when its last route has been dark for a full business cycle.

Technology

The stack behind it.

  • Java
  • TypeScript
  • Postgres
  • Debezium
  • Kafka
  • Terraform
  • OpenTelemetry

Outcome

What the build achieves.

Illustrative outcomes from the demonstration environment. They describe the behaviour the design targets — they are not measured client results.

Cutover risk
Per-boundary and reversible; no migration weekend

Engineering outcome of the strangler design. Illustrative, not a measured client result.

Behaviour preservation
Characterisation suite pins existing behaviour before any extraction

Method, applied per boundary.

Delivery continuity
Feature work continues throughout; no freeze window

Property of the façade-and-extract sequencing.

Correctness evidence
Continuous reconciliation between legacy and extracted stores

Design constraint.

Demonstration figures — design intent, not client-verified

Start a conversation

Bring us the version of this that is actually yours.

We will read the constraint, say what we would change, and be direct about what we do not yet know.