Microservices and Reactive Architecture
The global market is rapidly evolving and with it the business models that have led the main companies, both in the IT field and beyond, in the last decades.
The need to be the first to market their products has become the mantra of companies. In a phase like this, where social media, and the internet in general, allow you to quickly spread your brand and quickly influence the market, being quick to release proposals that intercept the needs of society is the key to success.
Numerous market analyses have been presented in this regard, which depicts a state of deep transformation. Here are some examples:
- By 2020, more than 75% of the S&P 500 will be companies that we have not heard of yet
- By 2020, every business will become a digital predator or digital prey
- Among surveyed executives, 87% believe digital technologies will disrupt their industries and yet only 44% indicated their organizations were taking appropriate measures to avert disruption
It almost seems like an apocalyptic scenario, doesn't it? Fortunately, this isn't the case. What is expected is a scenario that requires an ever-faster need for innovation to satisfy a market that is evolving at speeds that we are not used to.
The answer to this need is digital transformation. What is it? It's a transformation of business by revamping all the main assets of the companies—the business strategy, marketing approach models, products, targets, and so on, by adopting digital technologies. In this way, companies will be able to accelerate the sales and growth of the business.
This process requires a restructuring of the corporate structures, through the adoption of agile methodologies and DevOps, which are needed to make the corporate structures more rapid and efficient so that they can design and release efficient, scalable, and therefore a high-performance architecture—in a nutshell, microservices.
In this chapter, we will cover the following topics:
- MicroProfile and the principles of microservice architecture (MSA)
- Service-oriented architecture (SOA) versus MSA
- From monolith to microservices
- Reactive systems and reactive programming