News for hackers. Stuff that matters.
Re:“It's The Future” by totally on Wednesday August 17, 2016 @08:58AM (#12304276)
Yes, but there's another dimension here. If another team breaks your build in a monolithic repo, you may or may not be able to resolve this quickly. You're in a contract with them about the state of the repo and thus your service.

With microservices, the production version of their service would conceivably be stable. It moves the contract from the repo to the state of production services.

Re:“It's The Future” by wtbob on Wednesday August 17, 2016 @09:35AM (#12304537)
> If another team breaks your build in a monolithic repo, you may or may not be able to resolve this quickly.

With a monolithic repo done right, the other teams broke their build of their branch, and it's up to them to resolve it. You, meanwhile, are perfectly happy working on your branch. When their changes are mergeable into trunk, then they may merge them, not before — and likewise for you.

With multiple repos, they break your build, but don't know it. You don't know it either, until you update your copies of their repos — and now you have to figure out what they did, and why, and how to update your logic to handle their new control flow, and then you update again and get to do it again, until finally you ragequit and go live in a log cabin with neither electricity nor running water.

Re:“It's The Future” by vonmoltke on Wednesday August 17, 2016 @10:00AM (#12304715)
> With multiple repos, they break your build, but don't know it. You don't know it either, until you update your copies of their repos — and now you have to figure out what they did, and why, and how to update your logic to handle their new control flow, and then you update again and get to do it again, until finally you ragequit and go live in a log cabin with neither electricity nor running water.

I don't see how this is a problem if you are pushing frequently and have a CI system. You know within minutes if the build is broken. If it broke, don't pull the project with the breaking changes.

My point is, I don't think one approach is inherently better than the other. Both require effort on the part of the teams to manage changes (or a CM team), and both require defined processes.

Re:“It's The Future” by sanderjd on Wednesday August 17, 2016 @10:16AM (#12304841)
> If it broke, don't pull the project with the breaking changes.

I agree with the overall sentiment of your comment, but the quoted part is where I've seen trouble brew. The tendency is to be conservative about pulling updates to dependencies, which can easily get you into a very awkward state when a critical update eventually sits on top of a bunch of updates you didn't take because they broke you. It is usually better to be forced to handle the breakage immediately, one way or another.

Re:“It's The Future” by totally on Thursday August 18, 2016 @09:01AM (#12312142)
> With a monolithic repo done right.

Yes, that's the contract that you need to have with other teams. And it's the contract that is automatically enforced with microservices.