Mitosis Pattern
summary
Claims a practical way to evolve an MVP into a modular system by iteratively duplicating and specializing models to resolve “model tension,” then only moving to services when the residual shared surface is tiny and stable. Demonstrates a live code refactor: split a monolith into search, booking and a shared kernel, add an anti-corruption layer (ACL) and use dependency injection and tests to avoid coupling, implement taxes (20% first class, 10% second class), fix a past-booking invariant bug and propose replacing the kernel with an off‑the‑shelf money library — the refactor compiles and fixes production faults.
AI-written summary · about
chapters (40)
- 0:00Introduction to Mitosis Pattern
- 1:16MVP success and booking feature
- 2:21Live demo of booking feature
- 4:07Critique of big ball of mud
- 6:14Model tension in monolith
- 7:37Microservices vs modular monolith
- 9:45Duplication tradeoff debate
- 11:30Distributed monolith risks
- 12:55Domain driven design approach
- 13:16Modor Express domain service
- 14:00Splitting domain behaviors
- 15:03Creating booking and search domains
- 16:08Moving concepts to domains
- 17:11Specializing space train models
- 18:15Behavior-based domain splitting
- 19:17Renaming fair to fair option
- 20:41Shared kernel concept
- 21:43Implementing shared kernel
- 22:47Critique of shared kernel
- 24:11Clean domain structure
- 25:14Shared kernel flexibility
- 25:36Fixing compilation errors
- 26:17Anti-corruption layer introduction
- 27:41Extracting anti-corruption layer
- 28:45Dependency injection in booking
- 29:47Final domain structure
- 30:07Tax feature implementation
- 31:12Model tension in tax computation
- 32:39Specializing price and comfort class
- 33:21Tax portion computation
- 34:46Pass booking bug fix
- 35:52Production bug in bookings
- 36:54Invariant specialization
- 37:37Removing shared kernel residue
- 38:38Business reasons for microservices
- 40:02Context map and money domain
- 41:47Generic subdomain discovery
- 42:52Using off-the-shelf libraries
- 43:12Pattern summary and conclusion
- 47:32When to use Mitosis Pattern
related talks
50mModel Mitosis: a dynamic pattern to deal with model tensions
46mModel Mitosis: Stop making the wrong choice between microservices and monolith
48mModel Mitosis: Stop Confusing Microservices and the Monolith
50mModel Mitosis: No More Confusing Microservices and the Monolith
46mFrom Chaos to Cohesion: Building Modular Monoliths in the Real World
51mModel Mitosis: No More Confusing Microservices with Monoliths
39mMinimal Viable Architecture
47mRefactor Without Breaking Everything: Anatomy of Incremental Modernization Patterns
