Granularity
Granularity
defines the size of each component, part, or module in a distributed system.
- The size is about what the module does—the features.
- An impact on modularity, reusability, testability, performance, security, and reusability.
- Modularity: smaller size leads to more modules.
- Reusability: the smaller size makes it easier to maintain the features.
- Testability: the reduced scope, makes the tests easier to maintain.
- Performance: facilitates the optimization of a module. (not the whole system)
- Security: it is easier to protect the module.
- Smaller modules have some advantages: modularity, easier maintenance, distribution, security, and privacy.
- Smaller modules also have some disadvantages: communication and infrastructure complexity, latency, performance, and global maintenance.
- What is the right granularity? (future post…)