A mono- or multi-repo strategy
Besides team size and cadence, the way you structure your code has also an impact on your architecture if you want to perform the Inverse Conway Maneuver. There are two strategies:
- A mono-repo strategy: There is only one repository that contains all modules (or microservices) that are needed by an application.
- A multi-repo strategy: Each module or microservice lives in its own repository, and you must deploy multiple repositories to get a complete working application.
Both strategies have advantages and disadvantages. The biggest advantage of the mono-repo strategy is that it is easy to deploy and debug the entire application. But mono repos tend to get very large very fast, and that reduces the performance of Git. Also, deploying and testing different parts of the application independently becomes difficult with a growing repository. This leads to a tighter coupling of the architecture.
Working with large mono repositories
What...