> With a monorepo, you just refactor the API and all of its callers in one commit.
I have experience working a monorepo at a mid-sized tech company (~1000 developers) and with Brazil at Amazon (tens of thousands of developers).
It's true that at my monorepo company, that's how we did it. However, I don't understand how this would work at Amazon's scale—for some packages you simply cannot update all the consumers at once and also as the vendor of an API, it's not my job to update the consumers. So I need to be able to have multiple versions of my interface resident at the same time. Brazil solves this problem with version sets.
How is it solved in these vaunted monorepos at Facebook and Google? If there are N core libraries that each have two versions of their APIs, it it possible for consumers to each pick and chose which APIs to use, or it enforced that libraries just have one version that is "live" at any time?
The opposite of mono- is poly-, though.
Using many- is kind of confusing when spoken:
> Unfortunately, in manyrepo environments...
Sounds and almost reads like "in many repo environments", which has a different meaning.