I used to be afraid of that, but I've found that it is possible to solve this problem with Code Ownership rules in Github.
(Which sometimes you also need even when using microservices, if you use a monorepo, for example)
(Which sometimes you also need even when using microservices, if you use a monorepo, for example)
This is unfortunately very easy to override. Oh the rants I could write. If I could go back in time we would've put in a ton of extra linting steps to prevent people casually turning private things public* and tying dependencies across the stack. The worst is when someone lets loose a junior dev who finds a bunch of similar looking code in unrelated modules and decides it needs to be DRY. And of course nobody will say no because it contradicts dogma. Oh and the shit that ended up in the cookies... still suffering it a decade later.
*This is a lot better with [micro]services but now the code cowboys talk you into letting them connect directly to your DB.