Technology Diversity

In the monolithic application, everyone needs to agree on a language, stack, and often a specific version of a stack. If one component of an application can benefit from some new features in the most recent .NET framework release, we may not be able to adopt it because another component in the application might be unable to support it.

Unlike the libraries and components of a monolithic application, with a microservices approach the application can be composed of independent services that leverage different frameworks, versions of libraries or frameworks, and even completely different OS platforms.

Technology Diversity Benefits:

Avoid long-term commitment to a stack

Enable the best technology for the team

Avoid stack version conflicts between features or libraries

Employ evolutionary design

Developers are passionate about technology and often have very strong opinions for or against a technology. These debates can go on for days, months, and even longer. All this discussion occurs before we can even begin building an application, and then we have to wait on the framework team to complete development.

With microservices we can use the best tool for the job. We can select the same or different technology stack for each individual microservice we are building. Different languages, stacks, data stores, and platforms can be used with each service. One of the services could be implemented using Node.js, and another service can be written in Java or .NET. Components of an application can require different versions of a framework or stack. One component of an application might not be able to use the latest version of a framework because another component’s incompatibility with the latest version.

As we can see in Figure 1.3, services can be implemented using a number of different languages and different data stores. A catalog service can be implemented in Java and benefit from Elasticsearch features, while the payment processing service can use ASP.NET and a transactional database with strong consistency and reporting features like SQL Server.

Image

FIGURE 1.3: Services using different technologies and databases


Image Note

Just because we can use different languages and technologies across the various services does not mean we necessarily should.


The technology diversity and small size of the services enables evolutionary design. Technology is moving at an extremely rapid rate and leveraging new technologies in a monolith can be slow. If a decision is made to move to a new platform or technology, the entire application needs to be changed to support it. With the microservices architecture individual services can quickly adopt technologies that benefit the needs of that service without having to worry about the impact to other features in the application.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.144.9.124