Seems like part of the problem re: the shared library/dependency each repository relied on was a core problem of change management. Changing <i>anything</i> that other code relies on must be done in a backwards compatible way - too much to get into here but things like never changing a property/method name, the Type of a thing, so on - so as to only move forward.<p>Keeping all these independent services using the same version of a shared dependency, moving in lock step with it, well lets just say there's sometimes too much of a premium put on that.