Sounds like you haven't correctly drawn the boundaries of your microservices or you're not versioning them or both.
And if you're having a tough time deploying changes, it sounds like you're not practicing continuous delivery, which as Fowler said is a prerequisite.
Yeah I think this goes into the category of:
Patient: "Doctor, when I bend my arm backward, it hurts!"
Doctor: "Stop doing that."
Doesn't mean that using your arm is a bad idea.So:
- don't issue pull requests for multiple projects
- don't keep mental track of the status of those pull requests.
- don't worry about breaking clients
- don't worry about the logistical/scheduling issues of multiple teams
?
First, you need to issue pull requests for multiple projects and keep mental track of the status of those pull requests.
Second, [in a large organization] you might find out that changing the microservice on the server side breaks some client down the road because of new/unexpected parameters introduced, and the client handling it poorly.
Third, if the services [in a large organization] are distributed across multiple teams, you need to work around their schedules and their deploy calendars to orchestrate those changes.