Skip to content

Can a legacy monolith participate without a personality transplant?

Elevator answer

Yes. Keep the local transaction and the useful old code. Put one troublesome capability behind a typed flow boundary; the monolith need not cosplay as twelve startups.

3 coffee-machine misconceptions

Microservice Mike

“A monolith becomes modern only after being cut into services with matching outage schedules.”

Consultant Nigel

“No change is safe because the application has survived too much to be questioned.”

Consultant Nigel

“First rename it a transformation platform, then begin discovering what it does.”

The real explanation

A monolith may contain excellent local transactions, one horrifying partner client, and fifteen years of rules nobody has written down. Calling it a failed microservice architecture is a good way to throw away its strengths while preserving its bugs.

Start where work already enters: a controller, scheduled reconciliation job, Kafka consumer, or internal facade. Suppose the nightly reconciliation now uploads a file, calls a partner API, waits for human approval, and emails a report. The database updates can remain local. Put that cross-system path into a typed flow, with a Command for the upload and an Await for the approval. The other 900 service methods do not have to attend the ceremony.

Be honest about who holds the keys. If the monolith still owns the invoice rows and retry policy, say so. If another runtime accepts the work, record who persists the suspension, who may retry the partner call, and what completion looks like. Moving a call over HTTP has not transferred responsibility; it has merely made the stack trace more adventurous.

The useful result may be a clean boundary inside the same deployment. That is often better than replacing a method call with a network and celebrating the new latency. A monolith can gain a boundary without pretending it has become twelve companies.

Trade-offs

TPF makes one consequential path explicit without forcing deployment decomposition. The cost is maintaining and testing the seam—and admitting that the rest of the monolith remains the rest of the monolith.

When TPF is not a good fit

If a capability is entirely local and well understood, leave it local. Do not extract a pipeline merely to demonstrate modernization.