Everything in software is about dependencies, and monorepos are playing double or nothing with dependencies.
The issue with Monorepos is that they can amplify bad decisions and tech debt. Any bad decisions are magnified across the organization. But they definitely don't make it easier or harder to make that initial bad decision.
The upside is that dependencies are just there and not hidden behind interfaces.
The downside is that a bad dependency cannot be abstracted behind a micro-service interface. Once it's out in the wild it can do crazy things.
not liking microservices myself but - if I did this wouldn't it mean that the code in version 19 was now removed from the code in version 18 and back in git history making it more difficult to figure out just where things went wrong on a difficult little edge case.
git bisect helps to easily identify hard to find but reproducible bugs. Since we try to have small PRs once you found the breaking commit it is usually easy enough to the find the bug. Murphy and exceptions obviously apply.
Container based solutions become harder? Again… build your artifacts and deploy all the containers you want? What is so hard about this?
Meanwhile, with multi-repo you lose out on a whole host of opportunities to robustly track dependencies and keep things up to date.