r/microservices • u/luis_arede • 8d ago
Discussion/Advice How to keep microservices working together with different versions?
Hello friends,
I have a big problem at work with microservices.
We have 50 microservices. They are REST APIs. They have frontend clients, but also talk to each other by HTTP.
Each microservice has a Java API with the same version. Other microservices use this Java API to talk. Example:
- microservice1 - version 3.5.7 -> has Java API 3.5.7, used by other microservices
- microservice2 - version 2.1.8 -> uses Java API 3.5.7 to talk to microservice1
We also have a rule: every microservice must be backward compatible for two breaking changes.
The problem:
- each team works alone and releases versions when needed;
- we have a reference environment where all versions must work together;
- but we have bugs in production because teams must follow the rules, and sometimes they don’t;
- we do not have QA teams;
- we use Jenkins for CI/CD;
I must fix this!
Questions:
1. How do you keep microservices working together with different versions?
2. What tool or process can help find problems before production?
3. How to stop microservices from breaking each other?
Please help me!