Understanding the Differences Between Modularity and Granularity
summary
Modularity and granularity are different: modularity is breaking the system into deployable units, granularity is their size. Uses git history and simple metrics to show code volatility and proves splitting notification into separate services cuts test and deployment risk when email changes weekly but SMS is stable. Measured throughput is 220,000 texts/minute, 500 emails/minute, 1 letter/minute and mean time to start 3,400ms for the combined service, motivating separate SMS/email/letter services. Compares component refactorings vs tactical forking and details data, transaction and latency trade-offs.
AI-written summary · about
chapters (21)
- 0:00Introduction and setup
- 1:27Defining modularity and granularity
- 2:09Why break systems into modules
- 7:04How to decompose systems
- 14:57Understanding service granularity
- 16:42Disintegration drivers for granularity
- 22:25Measuring code volatility
- 22:46Scalability and throughput metrics
- 25:18Fault tolerance and error rates
- 29:35Security and access control
- 31:44Integration drivers for granularity
- 32:05Transaction challenges in microservices
- 33:53Data ownership and bounded contexts
- 37:26Workflow and semantic coupling
- 41:45Distributed computing fallacies
- 43:32Q&A session begins
- 44:14Data dependencies and mirroring
- 47:43Component-based decomposition tips
- 52:17Fitness functions for subjective metrics
- 58:36Starting from scratch without metrics
- 1:01:03Summary and closing remarks
related talks
57mUnderstanding the Differences Between Modularity and Granularity
49mRealizing Domain Design Through Architectural Modularity ...
01mMark Richards at DDD Europe
51mModularization: Foundation of Microservices and Monoliths
47mMicroservices? Monoliths? An Annoying Discussion!
35mThe Costs of Modularization
57mModularizing the Monolith
46mGranularity & Communication for Microservices Architectures
