Understanding the Differences Between Modularity and Granularity
summary
Modularity is the act of breaking systems apart and granularity is the size of those pieces; five objective drivers for modularity are maintainability, testability, deployability, scalability and fault tolerance. Two migration patterns appear: component-based decomposition (controlled iterative refactors, slow but low risk) and tactical forking (copy repo and sculpt, fast but messy). Granularity decisions use measurable disintegrators like code volatility, throughput (example: 220k SMS/min vs 500 emails vs 1 letter/min) and start times (mean time to start 4.5s), balanced by integrators: transactions, data coupling and orchestration; start coarse and refine.
AI-written summary · about
chapters (10)
- 0:00Modularity vs granularity
- 1:45The why of modularity
- 3:22Drivers for moving systems
- 13:21When to challenge the move
- 15:47Approaches to decomposition
- 21:43Tactical forking explained
- 27:13Granularity disintegrators
- 34:03Objective granularity drivers
- 43:59Granularity integrators
- 51:29Q&A and final conclusions
related talks
01h 02mUnderstanding the Differences Between Modularity and Granularity
01mMark Richards at DDD Europe
49mRealizing Domain Design Through Architectural Modularity ...
51mModularization: Foundation of Microservices and Monoliths
57mModularizing the Monolith
35mThe Costs of Modularization
01mModularization: Foundation of Microservices and Monoliths
46mGranularity & Communication for Microservices Architectures
