Hands-On Cloud:Native Microservices with Jakarta EE
上QQ阅读APP看书,第一时间看更新

Differences between MSAs and SOAs

As I mentioned earlier, there are some common points between MSAs and SOAs, so much so that you can define MSAs as an evolution of SOAs. But what differentiated these two architectural designs and where did SOA fail?

Let's try to summarize their different features and concepts:

Finally, we can't say that one architecture is absolutely great while the other one is totally wrong. There are some positive aspects in SOAs. Maybe, the points which led to its decline are:

  •  Strong coupling between services due to protocol communication and code sharing that increases the time to release a new version and make it difficult
  •  Vendor lock-in due to the presence of ESB proprietary implementation
  •  Limit of the scalability due to the technologies used

We can think about MSA as SOA on steroids—it reuses the benefits and overcomes the limitations with a new way of thinking and designs focal points using the great new features of cloud environments.

The most common approach to evaluate MSA is to refactor a classic Java EE monolith application. In this way, people can examine whether the key features are present in the new design and how they can implement them. After that, they will start to think about building a microservice cloud-native application from scratch.