MONOLITHIC & MICROSERVICES
How many users at what time ?
- Resources needs to be scaled quickly enough !!!
• Businesses today use a host of SaaS applications — the average
business uses 137, according to Blissfully’s 2020 SaaS Trends report.
• Those applications generate terabytes of data.
• Also, the data in multiple platforms can be related — such as an
address on a credit card used for an ecommerce purchase, which is
also useful as an address for a shipping platform — and that
ecommerce transaction itself can be tracked by a company’s analytics
platform.
• Businesses have two broad choices when it comes to rolling out
technology stacks: deploy a single platform that combines many
functions, or take a best-of-breed approach that uses microsystems to
integrate discrete services from different vendors.
What is monolithic architecture?
• Monolithic applications are designed to handle multiple related tasks.
They’re typically complex applications that encompass several tightly
coupled functions.
• For example, consider a monolithic ecommerce application. It might
contain a web server, a load balancer, a catalog service that services up
product images, an ordering system, a payment function, and a
shipping component.
• As you can imagine, given their broad scope, monolithic tools tend to
have huge code bases. Making a small change in a single function can
require compiling and testing the entire platform, which goes against
the agile approach today’s developers favor.
What are microservices?
• In contrast to the monolithic approach, a microservices architecture
involves smaller applications deployed independently as loosely coupled
services, tied together through application integration.
• With microservice applications, the business logic may encompass multiple
platforms, including software as a service, on-premises databases, and in-
house-developed applications that meet needs that no application
handles.
• From a software engineering perspective, microservices can be simpler to
develop. They’re smaller in scope and therefore smaller in size, which
makes it easier for developers to improve them through continuous
integration and continuous delivery (CI/CD). They can be written in any
programming language. And they can communicate with other
microservices through APIs.
General architecture
Source:
Microsoft
Monoliths vs microservices
Source: Martin
Fowler
Monolithic
Flow #1
I want to book a
flight
Monolithic
Flow #2
Here are the
available flights
Monolithic
Flow #3
I want to book one of
those flights
Monolithic
Flow #4
Would you like to hire
a car?
Business Drawbacks
▶ One-way communication
▶ Customer is in control
▶ Website is idle when user is idle
▶ Limited window of opportunity to interact
▶ Reduced scope for ancillary revenue
Technical Drawbacks
▶ Results in dependencies
▶ Failure affects everything
▶ Change is slow
▶ Scale is expensive (minor features require unilateral scale)
▶ Steep learning curve
▶ Technology stack is limited to specific skillsets
▶ Introduces legal pitfalls (PCI DSS, Compliance)
▶ Duplicated components due to lack of explicit boundaries
▶ Rigid – likely to break under pressure
Microservice
Flow #1
Car
Hire
Hot
el
Flig
ht
Ta
xi
User
Profile
Fare
Finder
Flights
Oth
er
Microservice
Flow #2
Car
Hire
Hot
el
Flig
ht
Ta
xi
User
Profile
Fare
Finder
Taxi
s
Flights
Oth
er
Microservice
Flow #3
Car
Hire
Hot
el
Flig
ht
Ta
xi
User
Profile
Fare
Finder
Taxi
s
Flights
Cars
Oth
er
Microservice
Flow #4
Car
Hire
Flig
ht
Ta
xi
User
Profile
Fare
Finder
Taxi
s
Flights
Cars
Hotels
Hotel
Oth
er
Enhanced Flow
Step #5
Car
Hire
Flig
ht
Ta
xi
User
Profile
Taxi
s
Flights
Cars
Hotels
H
o
t
e
l
Fares
Fare Finder
Oth
er
Business Benefits
▶ Two-way communication
▶ We’re in control (think Google)
▶ APIs are always working
▶ Unlimited opportunities to interact
▶ Broader scope for ancillary revenue
Technical Benefits
▶ Eliminates dependencies
▶ Failure is isolated
▶ React to change quicker
▶ Scale is less expensive (APIs scale individually)
▶ More intuitive learning curve
▶ Technology stack is not limited to specific skillsets
▶ Shielded from legal pitfalls
▶ Reusable components
▶ Flexible – will bend rather than break under pressure

MONOLITHIC & MICROSERVICES difference and their properties