Case Study on Google (Monolith at scale)β
- 1 lines of code and changed at 45k commits per day. (at 2015)
- Multiple custom built tools to support this (you need to invest in your own custom tools to have a monolith on this proportion)
- Piper - Custom Repository
- CitC - Code Browser
- Code Critique - Code Review
- Bazel - Code Build
- Automated Checks
Monolith Pros (as per Google)
- Unified Versioning, one source of truth
- No Merging issues
- No artificial boundaries
- No confusion on authoritative version of a file
- Simplify greatly dependency management
- Extensive code sharing and resuse
- Simplified dependency management
- No Diamond Dependency Problem
- Atomic Changes
- Large Scale Refactoring, Codebase modernization
- Collaboration
- Flexible Team Boundaries
- Code Visibility and clear tree structure providing team namespacing