Why Google stores billions of lines of code in a single repository (2016)
The model that I've liked the most...<p>- Monorepo for all the services code in the enterprise. (Java )<p>- UI code is kept in their own repositories.<p>- Enterprise Services are exposed using well defined stable rest-like APIs. (json, http, swagger, etc). We only exposed what is needed.<p>- Within the services monorepo, services can call other services directly using regular java calls.<p>- Services in the monorepo are refactored all the time. This is the advantage of using a strongly typed language like Java.<p>- Several instances of the services run are a time, they scale horizontally.  Releases are done one instance at a time.<p>- We had good unit and integration test suites on the services.<p>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.