Polyglot microservices: additional things to consider
In this article, I will explain why, even when you have the option to use different languages across your microservices architecture, this is not always a good idea.
Introduction
One of the characteristics of microservices is the ability to use different programming languages depending on the microservice and the business and technical requirements you have. This is a huge advantage and is part of the reasons why companies use microservices. But there are also some drawbacks. Do you want to read more?
Advantages of the polyglot quality of the microservices
First, we should talk about the advantages:
- If you can use more than one programming language -in opposition as with the monoliths- you can choose the best language for each use case, which is obviously good.
- If you are not restricted to a single programming language, hiring developers should be easier, as the group you are targeting is bigger.
- You can move developers from one language to another in case they want to grow in different directions. This uses to be nice for them.
- If you can choose, maybe you can consider non-technical things like the cost.
But, obviously, we have some disadvantages we need to also consider.
Disadvantages of the polyglot quality of the microservices
Even when having the ability to choose a different programming language for each microservice is not an obligation -so we can choose always the same- we need to consider the disadvantages of using several different ones:
- If you divide your developer base into several different languages, you have fewer developers per language, so sometimes it can be difficult to plan resources.
- If you have different languages, you have different infrastructure needs. Even when most of the time you can achieve an agnostic infrastructure, you are going to have different testing and building process at least.
- Your recruiters are going to have a bad time: they need to know the ecosystem for each language they need to find people for, and having several different ones is more knowledge to have.
Conclusion
This is one of these situations where apparently all is good but, at the end of the day, there are some disadvantages you need to consider. Be aware of it and choose wisely.