In the last couple of years, more and more organizations, especially in the start up scene, have been actively embracing the SOA paradigm either for building new systems or for modernizing existing legacy systems.
SOA is an architectural approach to creating systems that have been built from autonomous services that may be written in different programming languages and communicate with each other over a network link.
In the following sections, we will examine this architectural pattern in more detail and highlight some best practices for migrating from a monolithic application to microservices. At the same time, we will explore some common anti-patterns that can impede the transition to a microservice-based architecture.