×

Search anything:

Monorepo explained

Binary Tree book by OpenGenus

Open-Source Internship opportunity by OpenGenus for programmers. Apply now.

Reading time: 20 minutes | Coding time: 10 minutes

Monorepo is:

  • A repository contains more than one logical project (e.g. an iOS client and a web-application)
  • These projects are most likely unrelated, loosely connected or can be connected by other means such as a dependency management tool like Bazel
  • The repository is large in many ways: Number of commits, Number of branches and/or tags, Number of files tracked, size of content tracked and many others

One good software design practice is to keep projects modular. If so, why is monorepo still in use?

Advantages of Monorepo

Advantages of Monorepo are:

  • Unified versioning, one source of truth;
  • Extensive code sharing and reuse
  • Simplified dependency management
  • Atomic changes
  • Large-scale refactoring
  • Collaboration across teams
  • Flexible team boundaries and code ownership
  • Code visibility and clear tree structure providing implicit team namespacing

Disadvantages

Disadvantages of Monorepo are:

  • Massive tooling investments for both development and execution
  • Codebase complexity, including unnecessary dependencies and difficulties with code discovery
  • Effort invested in code health

Usage

Monorepo architecture is used by the following great companies: Google, Facebook and Twitter.

companies using monorepo

Interesting readings

OpenGenus Tech Review Team

OpenGenus Tech Review Team

The official account of OpenGenus's Technical Review Team. This team review all technical articles and incorporates peer feedback. The team consist of experts in the leading domains of Computing.

Read More

Improved & Reviewed by:


Monorepo explained
Share this