In a sense, microservices are simply SOAs — i.e., service-oriented architecture — reinvented.
SOAs arose around the early 2000s. The development teams at that time had separated each service, and then connected them through a service bus or a network.
However, developers then started to combine SOAs in an attempt to reduce the lag between service bus calls. They found that placing those SOAs together made the application and its services run quicker — i.e., one artifact instead of several.
This resulted in monolithic applications. But again, developers found that as monoliths grew in terms of features and capabilities, they became more complicated — and costly — to maintain.
As a result, they broke the monoliths apart again, hence the rise of microservices.
The Difference Between SOA and Microservices
Simply put, you can look at SOAs as individual services running over a bus or communications protocol over a network. Each of the application’s services are loosely coupled, but they speak to one another through a messaging protocol.
Understanding Microservices Applications
On the other hand, microservices — again, ‘SOA 2.0’ so to speak — are independent services, but they communicate with each other directly using lightweight protocols, such as HTTP.
The major difference between SOA and microservices is that each service on the SOA relies on one bus. If you overload the bus, then your application is at risk of crashing. Microservices could speak across multiple interconnected pathways. Unlike SOA, there’s no single point of failure.