Skip to content
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
93 lines (59 sloc) 1.62 KB

Repository Management

Single Repository (Monorepo)


  • 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


  • Possibility of a lot of noise/overheads


  • Angular
  • Babel
  • Ember
  • Jest
  • React


  • For JavaScript/Node.js: Lerna


  • Consider having fewer repos, but larger


  • Facebook
    • Actually has many repos, but few (say less than 10)
  • Google
    • One huge repository built by Google
  • Microsoft's Azure
  • Twitter

Multiple Repositories (Multirepo)


  • Independent teams and styles


  • 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


  • Amazon
  • Skype

Also known as:

  • Polyrepo

Comparison Matrix (Software Architectures vs Repository Styles)

Monolithic Non Monolithic
Monorepo Option A Option B
Multirepo Option C Option D

A: Monolithic and Monorepo


  • Knowledge sharing

B: Non Monolithic and Monorepo

C: Monolithic and Multirepo

D: Non Monolithic and Multirepo

You can’t perform that action at this time.