Repository Management
Pros:
- Knowledge Sharing
- Common styles and themes
- Easier for team members to switch projects
- Easier to track dependencies between projects
- Example: I don't have to find the repository where a particular service lives
- Engineers can see work and progress of other people
- Engineers are not siloed
Cons:
- Possibility of a lot of noise/overheads
Examples:
- Angular
- Babel
- Ember
- Jest
- React
Tools:
Alternatives:
- Consider having fewer repos, but larger
Examples:
- Facebook
- Actually has many repos, but few (say less than 10)
- Google
- One huge repository built by Google
- Twitter
Pros:
- Independent teams and styles
Cons:
- Problems with coordination
- Limits knowledge sharing across repositories
- Context switching between work across repositories
- Hard to enforce styles
- Smaller repos, but many
- Engineers can be siloed
- Hard to track depedency management
Common in:
- Microservices
- FaaS / Serverless
Examples:
- Amazon
- Skype
Also known as:
- Polyrepo
| Monolithic | Non Monolithic |
Monorepo | Option A | Option B |
Multirepo | Option C | Option D |
Pros:
- Knowledge sharing
Cons:
- Increased operaitonal complexity and cognitive load
Last modified 3yr ago