> The former approach was release + upgrade all projects. Now if one of those fails post-update you have to build a new release and upgrade all projects _again_. Multiply that by hundreds of services and it can become pretty annoying.
I think there are actually at least 3 possibilities when you find a new version of a component breaks something that depends on it?
1) Continue using the old version for however long it still meets it's requirements and then do (2).
2) Make the local changes required to be compatible with the new version.
3) There is actually a bug in the new version and you need to fix the dependency.
If (3) is happening a lot it suggests that your test suite isn't good enough or you have some design problems that are making it impossible to provide a stable API.