Application Decomposition
Finding seams in a monolith, starting from the data.
4 to work through
-
advanced
A legacy system has no clean boundaries to extract — one shared database, entangled modules, no tests. What is the first move, and in what order should capability be recovered?
3 min answer -
advanced
A platform decomposes a monolith into services. Which boundaries should be extracted first, and which extraction produces a distributed monolith?
2 min answer -
advanced
During a monolith decomposition, the new search service needs data owned by five other services. What do you do?
2 min answer -
advanced
How would you identify where to split a large application, using evidence rather than opinion?
2 min answer
4 terms in this topic
Airbnb: Monorail to Service-Oriented Architecture
Airbnb decomposed a large Rails monolith into services, and the difficult part was data ownership rather than code extraction.
practiceApplication Decomposition
Breaking a large application into parts — where finding the seam matters more than the extraction technique.
practiceCharacterisation Test
A test that records what a system currently does - bugs included - rather than what it should do, providing the safety net that makes changing an unt…
practiceDecomposition by Capability
Breaking a monolithic system into parts along business capability lines rather than technical layers, so that each part changes for one reason.
Neighbouring topics
Legacy Modernization
General material on modernising existing systems.
Legacy Assessment
Understanding what a system does before deciding what to do with it.
The Six Rs
Rehost, replatform, refactor, repurchase, retire, retain — per application.
Rehosting
Lift and shift: fastest, cheapest, and capturing none of the benefits.
Replatforming
Targeted changes that capture operational wins without a rewrite.
Refactoring & Re-architecting
Changing structure incrementally while the system keeps running.
Rebuild vs Re-architect
Why greenfield replacement fails, and the narrow cases where it does not.
Strangler Fig
Routing capabilities to new implementations behind a facade, one at a time.
Database Migration
Moving engines, versions and schemas without losing data or uptime.
Data Migration Strategies
Backfill, dual-write, reconciliation and verification.
Zero-Downtime Migration
Expand, migrate, contract — and the contract phase that never happens.
Parallel Run
Shadowing the old system to discover the rules nobody documented.
Cutover Planning
Rehearsals, go/no-go criteria and a rollback that has been executed.
Legacy Integration Patterns
Anti-corruption layers, adapters and CDC against systems that cannot change.
Mainframe Modernization
Batch windows, COBOL, and the risk profile of core banking systems.
Migration Risk
Bounding blast radius, staging by cohort, and honest readiness reporting.
Modernisation Business Case
Pricing tail risk so deferred maintenance becomes fundable.
Coexistence Patterns
Running old and new together for years without corrupting either.
Decommissioning
Actually switching the old system off, and proving nothing depended on it.