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.