Single repository structure
A single-repository structure, or monorepo, is an arrangement in which multiple related software projects or components are maintained in one version-controlled repository.
Infrastructure as Code, Patterns and Practices: With examples in Python and Terraform
A repository organization pattern in which all infrastructure configurations and modules are stored together in one code repository.
- How it is used
- Organizes shared infrastructure configurations and reusable modules so teams can compose, reproduce, compare, and inspect them in one place.
- How deep it goes
- Defines the layout, demonstrates local imports, and explains trade-offs, but defers detailed build-system implementation and governance mechanics.
- Examples
- Uses team-based development and production directories, local Python imports, and composed server, network, and database factory modules.
- What you can do after
- Operate/configure a monorepo layout, reference local modules, compare environments, and recognize when scaling requires repository decomposition.
Bootstrapping Microservices, Second Edition: With Docker, Kubernetes, GitHub Actions, and Terraform
A monorepo is a single source-code repository that contains multiple services, applications, or related projects managed together.
- How it is used
- Organizes a small microservices application in one repository while allowing each service its own directory and deployment workflow.
- How deep it goes
- Defines the layout, shows a directory-scoped CD workflow, and outlines a later split; defers history-preservation details to Git documentation.
- Examples
- Shows service subdirectories, a GitHub Actions workflow filtered to `gateway/**`, and a proposed split into service and infrastructure repositories.
- What you can do after
- Operate/configure a monorepo with per-service CD workflows, and evaluate when to move services into separate repositories.
Related concepts
- repositorykind of · A software repository is an organized storage location or collection of project files and related artifacts, often managed with version history and change tracking.
- monolithic architecturecontrasts with · Monolithic architecture is a software architecture in which an application's major functionality is organized and deployed as a single integrated unit.
- multiple repository patterncontrasts with · A repository organization pattern that separates infrastructure-as-code configurations or modules into distinct repositories by team or function.
- packagehas part · A software package is a named grouping of modules or components, often with related resources and metadata, organized for import, reuse, distribution, or management.
These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.

