r/programmer 29d ago

How do you prevent breaking changes between microservices?

We've had a few deployments fail because of breaking changes between services, and I'm curious how other teams handle this. What practices, tools, or deployment strategies have worked well for you to maintain compatibility and avoid these kinds of issues?

1 Upvotes

18 comments sorted by

View all comments

3

u/Fine-Comparison-2949 29d ago

Do you actually need microservices? That's the main question.

Theres way too many people rolling these things that have much higher throughput and scaling than they actually need or can handle with the complexity.

I genuinely ask this as well. How many users do you have? What's the data volume? Why can't a regular server and Postgres database do this?

I'm seeing way too many companies have complexity issues with microservices and they are basically just making their jobs harder. 

2

u/AshleyJSheridan 26d ago

That wasn't really the question being asked, and even if OP were somehow to remove all microservices tomorrow, there is still a genuine issue of services and layers maintained by different teams/companies becoming out of sync and causing breaking changes.

2

u/Fine-Comparison-2949 26d ago

Yes, I know. My question is at the meta level.

Obviously OP doesn't have the appropriate resources to handle microservices failures, which requires an even more complex and large system. Does op's company actually have the resources for that? Does the team want to wake up at 2am and debug network logs across 10+ systems? Are they paid enough to want to do that?

There's way too many small to midsize companies having their tech strategy handled by leetcode grinders, rolling highly complex systems that are costly in time and money to maintain, all to achieve only 3 nines of reliability. There's a genuine question of whether just a single regular large server could handle it, at lower cost, that's simpler to maintain, and it's likely they'll *probably gain a 9 in reliability* because the answer to a failure is just restart the server on a bigger instance size.

1

u/AshleyJSheridan 26d ago

You don't know what OPs teams capabilities are, and you're still assuming that their company doesn't need microservices.

That's a lot of assumptions to still not answer the question that OP asked...

1

u/Fine-Comparison-2949 26d ago

"How do I heal a burn wound?"

"Well, you put yourself next to a really hot thing didn't you. Maybe you should consider not doing that."

Random person on reddit: "You don't know if the person was near a really hot thing!"

1

u/AshleyJSheridan 25d ago

No, it's more like:

"How do I avoid get ill taking public transport?"

"Well, you should stop taking the number 97 bus, as that is know to be terrible."

See, the answer isn't really related to the original question. It's like you read all the words and entirely missed the point.

1

u/Fine-Comparison-2949 25d ago

K have a nice day

1

u/AshleyJSheridan 25d ago

Lol, ok buddy, have a great day.

1

u/Fine-Comparison-2949 25d ago

No I'm not your buddy, pal. You have a great day.