Monolith seams, and where to find them
The monolith already knows where it wants to split. Reading the four seams that exist before drawing the ones you wish existed.

Carve along the seams the wood already has. Every monolith worth the name has been telling its owners where it wants to split for years; the trick is reading the grain instead of drawing target architectures over it. Fowler's crowd is right that monolith-first grows better boundaries than up-front guessing, and a decade-old monolith is the best boundary evidence you will ever own. Read it.
The four seams, in the order we look:
- The batch seam. Whatever already runs as a scheduled job has proven it tolerates asynchrony. Reports, exports, notifications, reconciliations: these leave the monolith with the least ceremony, because the contract is already a file and a schedule, not an object graph.
- The read seam. Screens and endpoints that only read (catalogs, dashboards, lookups) can move behind a replica or a view without renegotiating a single write path. Low risk, high traffic relief, and the team learns the routing discipline on easy mode.
- The vocabulary seam. Listen in meetings: where the same word means two things ("account" to billing versus "account" to support), the domain is already split and the code is merely behind. These make durable service boundaries because the business drew them first.
- The churn seam. Diff the commit history: the modules that change weekly belong apart from the strata nobody has touched since 2019. Splitting calm code from hot code lets the hot part earn CI speed and deploy frequency without dragging the museum along.
And the anti-seams, where carving costs double: anything sharing a transaction (the order-inventory-ledger commit is the database's treaty, not a service boundary), anything chatty (a hundred calls per request across a proposed boundary is the monolith voting no), and anything split by org chart alone, which produces services shaped like last year's reorg and an estate shaped like regret.
Method, one week of it: take the candidate seam, draw the interface it implies, then grep for every violation of that interface in the current code. Twelve violations is a seam; four hundred is a wish. The number decides, not the deck.
The discipline throughout: extract because a seam exists and a symptom names it, never because the diagram would look better with more boxes. The monolith spent years learning where it bends. The cheapest architecture review in the building is listening to it.