Free Technology Choice
Microservices offer technological freedom. Since microservices only communicate via the network, they can be implemented in any language and platform as long as communication with other microservices is possible. This free technology choice can be used to test out new technologies without running big risks. As a test, one can use the new technology in a single microservice. If the technology does not perform according to expectations, only this one microservice has to be rewritten. In addition, problems arising from the failure will be limited.
The free technology choice means that developers really can use new technologies in production. This can have positive effects on both motivation and recruitment because developers typically enjoy using new technologies.
This choice also enables the most appropriate technology to be used for each problem. A different programming language or a certain framework can be used to implement specific parts of the system. It is even possible for an individual microservice to use a specific database or persistence technology, although in this situation, backup and disaster recovery mechanisms will need to be considered and implemented.
Free technology is an option—it does not have to be used. Technologies can also be imposed for all microservices in a project so that each microservice is bound to a specific technology stack. Compare this with a deployment monolith, which inherently narrows the choices developers have. For example, in Java applications, only one version of each library can be used. This means that not only the libraries used but even the versions used have to be set in a deployment monolith. Microservices do not impose such technical limitations.
Decisions regarding technology and putting new versions into production only concern individual microservices. This makes microservices very independent of each other, but there has to be some common technical basis. The installation of microservices should be automated, there should be a Continuous Delivery pipeline for each microservices, and microservices should adhere to the monitoring specifications. However, within these parameters microservices can implement a practically unlimited choice of technical approaches. Due to the greater technological freedom, less coordination between microservices is necessary.