4 ms·
You could have build-time-enforced restrictions on interdependencies if you wanted to do an SOA-like thing without the runtime overhead, if you wanted to. The r
by ameliaquining 4y ago
You could have build-time-enforced restrictions on interdependencies if you wanted to do an SOA-like thing without the runtime overhead, if you wanted to. The real issue is that "logically separated areas in the same codebase" doesn't solve the release-management part of the problem. If you have a monolith, then each team can autonomously control how their code behaves at head, but they all have to conform to the centrally-dictated schedule for when those changes roll out in production. Often this doesn't matter, but sometimes it does, and then you have to have lots of meetings again.
Shared libraries are somewhat better about this, assuming that it's reasonably cheap to restart instances of the monolith, but some kinds of rollout strategies work better if you can divert which release to use at the request level rather than the instance level. Also, in a lot of languages, the tooling surrounding shared libraries just isn't as good.