Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

7/31/22, 3:22 PM Microservices vs SOA: The Differences Explained | Talend | Talend

Microservices vs SOA: What’s the


Difference?

Knowledge center » Application and API integration » What are Microservices?

Framework and Ar… » Microservices vs SOA: What’s the Differe…

Understanding the best way to develop and deploy applications is an


important consideration for any data-driven organization today. Options such
as service oriented architecture (SOA) and microservices offer valuable
flexibility for building and running applications that traditional monolithic
approaches don’t. However, it can be difficult to understand the differences
between the two in order to identify which is best for your business.

Microservices structure an application as a series of distinct, single-purpose


services while SOA is a group of modular services that “talk” together to
support applications and their deployment. These two approaches have
critical differences in architecture, component sharing, data governance,
communication and other elements that determine which situation each
method is best used for, and how it impacts the overall business.

What is service-oriented architecture?


Service-oriented architecture was largely created as a response to traditional,
monolithic approaches to building applications. SOA breaks up the
components required for applications into separate service modules that
communicate with one another to meet specific business objectives. Each
module is considerably smaller than a monolithic application, and can be
deployed to serve different purposes in an enterprise. Additionally, SOA is
delivered via the cloud and can include services for infrastructure, platforms,
and applications.

SOA’s two main roles are as a service provider and a service consumer. Its
service provider layer includes the different services involved in SOA, while
https://www.talend.com/resources/microservices-vs-soa/ 1/5
7/31/22, 3:22 PM Microservices vs SOA: The Differences Explained | Talend | Talend

the consumer layer operates as the user interface. 

SOA delivers four different types of services:

1. Functional services are used for business operations


2. Enterprise services implement the functionality
3. Application services are specific for developing and deploying apps 
4. Infrastructure services are for non-functional processes such as
security and authentication

Traditionally, SOA involves an enterprise service bus (ESB) as a means of


coordinating and controlling these services.   

What is a microservice?
Microservice architecture is generally considered an evolution of SOA as its
services are more fine-grained, and function independently of each other.
Therefore, if one of the services fail within an application, the app will
continue to function since each service has a distinct purpose. The services
in microservices communicate via application programming interfaces
(APIs) and are organized around a particular business domain. Together,
these services combine to make up complex applications.

Since each service is independent, a microservice architecture can scale


better than other approaches used for application building and deployment.
This characteristic also gives microservice applications more fault tolerance
than other application development methods. Microservices are frequently
built and deployed in the cloud; in many instances they operate in containers.

Microservices vs SOA: Identifying the differences


Many of the chief characteristics of SOA and microservices are similar. Both
involve a cloud or hybrid cloud environment for developing and running
applications, are designed to combine multiple services necessary for
creating and using applications, and each effectively breaks up large,
complicated applications into smaller pieces that are more flexible to arrange
and deploy. Because both microservices and SOA function in cloud settings,
each can scale to meet the modern demands of big data size and speeds.

Nevertheless, there are many differences between SOA and microservices


that determine the use case each is suitable for:
https://www.talend.com/resources/microservices-vs-soa/ 2/5
7/31/22, 3:22 PM Microservices vs SOA: The Differences Explained | Talend | Talend

Microservices SOA

Designed to share
Designed to host services which
Architecture resources across
can function independently
services

Component Typically does not involve Frequently involves


sharing component sharing component sharing

Larger, more modular


Granularity Fine-grained services
services

Each service can have an Involves sharing data


Data storage
independent data storage storage between services

Requires collaboration between Common governance


Governance
teams protocols across teams

Better for smaller and web- Better for large scale


Size and scope
based applications integrations

Communicates through an API Communicates through


Communication
layer an ESB

Coupling and Relies on bounded context for Relies on sharing


cohesion coupling resources

Remote Uses protocols like SOAP


Uses REST and JMS
services and AMQP

Less flexibility in
Deployment Quick and easy deployment
deployment

Architecture 
Microservices architecture is based on smaller, fine-grained services that are
focused on a single purpose and can function independently of one another
— but interact to support the same application. Consequently, microservices
is architected to share as few service resources as possible. Since SOA has
larger, more modular services that are not independent of one another, it’s
architected to share resources as much as possible.

Component sharing

https://www.talend.com/resources/microservices-vs-soa/ 3/5
7/31/22, 3:22 PM Microservices vs SOA: The Differences Explained | Talend | Talend

The independence of microservices minimizes the need to share components


and makes the services more resistant to failure. Additionally, the relative
lack of component sharing enables developers to easily deploy newer
versions, and scale individual services much faster than with SOA. 

On the other hand, component sharing is much more common in SOA. In


particular, services share access to an ESB. Thus, if there are issues with
one service in relation to the ESB, it can compromise the effectiveness of the
other connected services

Granularity
A SOA’s services are large, with some of the modular services resembling
monolithic applications. Due to each service’s capability to scale, SOAs
typically have a wider range of focus.

The more granular nature of microservices means that individual services


excel in performing a single specific task. Combining those tasks results in a
single application.

Data storage
With microservices, the individual services generally have their own data
storage. With SOA, almost all of the services share the same data storage
units. 

Sharing the same data storage enables SOA services to reuse shared data.
This capability is useful for maximizing data’s value by deploying the same
data or applications between business units. However, this capability also
results in tight coupling and an interdependence between services. 

https://www.talend.com/resources/microservices-vs-soa/ 4/5
7/31/22, 3:22 PM Microservices vs SOA: The Differences Explained | Talend | Talend

Learn how to take an API-first approach to development with our Field


Guide to Web APIs

Get the ebook

Governance
Because SOA is based on the notion of sharing resources, it employs
common data governance mechanisms and standards across all services. 

The independence of the services in microservices does not enable uniform


data governance mechanisms. Governance is much more relaxed with this
approach, as individuals deploying microservices have the freedom to
choose what governance measures each service follows — resulting in
greater collaboration between teams.

https://www.talend.com/resources/microservices-vs-soa/ 5/5

You might also like