Monolithic Repository
A monolithic repository, often called a monorepo, is a software development strategy where code for multiple projects, libraries, or services is stored in a single version-controlled repository. This approach centralizes dependencies, tooling, and configuration, enabling easier code sharing, refactoring, and cross-project consistency. It contrasts with polyrepos, where each project or component has its own separate repository.
Developers should use monolithic repositories when working on large-scale applications with tightly coupled components, such as in microservices architectures or complex frontend-backend integrations, to streamline dependency management and enforce uniform coding standards. It's particularly beneficial in organizations like Google or Facebook, where it facilitates large-scale refactoring, simplifies CI/CD pipelines, and reduces overhead from managing multiple repositories. However, it requires robust tooling (e.g., Bazel, Lerna) to handle scalability and avoid performance issues.