Why Google stores billions of lines of code in a single repository (2016)
The model that I've liked the most...- Monorepo for all the services code in the enterprise. (Java )- UI code is kept in their own repositories.- Enterprise Services are exposed using well defined stable rest-like APIs. (json, http, swagger, etc). We only exposed what is needed.- Within the services monorepo, services can call other services directly using regular java calls.- Services in the monorepo are refactored all the time. This is the advantage of using a strongly typed language like Java.- Several instances of the services run are a time, they scale horizontally.  Releases are done one instance at a time.- We had good unit and integration test suites on the services.Now I am working for a different company. We have hundreds of services deployed. No one knows what is running where. Or what the dependencies are. Once something is released, everybody is afraid to make a change as no one knows how that is affects other systems.