- Spring 5.0 Microservices(Second Edition)
- Rajesh R V
- 182字
- 2025-04-04 18:53:35
Microservices with polyglot architecture
Since microservices are autonomous and abstract everything behind the service APIs, it is possible to have different architectures for different microservices. A few common characteristics that we see in microservices implementations are as follows:
- Different services use different versions of the same technologies. One microservice may be written on Java 1.7 and another one could be on Java 1.8.
- Different languages for developing different microservices, such as one microservice in Java and another one in Scala.
- Different architectures such as one microservice using Redis cache to serve data while another microservice could use MySQL as a persistent data store.
A polyglot language scenario is depicted in the following diagram:

In the preceding example, since Hotel Search is expected to have high transaction volumes with stringent performance requirements, it is implemented using Erlang. In order to support predictive search, Elastic Search is used as the data store. At the same time, Hotel Booking needs more ACID transactional characteristics. Therefore, it is implemented using MySQL and Java. The internal implementations are hidden behind service endpoints defined as REST/JSON over HTTP.