0% found this document useful (0 votes)
786 views14 pages

Monolithic Architecture&Microservice Architecture

Monolithic architecture involves building an application as a single program with all components combined into one. Microservices architecture involves breaking an application into multiple independent services that communicate with each other, with each service running its own processes and databases. While monolithic is simpler, microservices allow for independent scaling and updates but add complexity around coordination. The choice depends on project requirements and whether to start monolithic and transition to microservices over time.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
786 views14 pages

Monolithic Architecture&Microservice Architecture

Monolithic architecture involves building an application as a single program with all components combined into one. Microservices architecture involves breaking an application into multiple independent services that communicate with each other, with each service running its own processes and databases. While monolithic is simpler, microservices allow for independent scaling and updates but add complexity around coordination. The choice depends on project requirements and whether to start monolithic and transition to microservices over time.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd

Monolithic Architecture

&
MicroServices Architecture
Monolithic Architecture

• Monolith means composed all in one piece.


The Monolithic application describes a single-
tiered software application in which different
components combined into a single program
from a single platform.
Components can be:
• Authorization
• Presentation
• Business logic
• Database layer
• Application integration
• Notification module
Example for Monolithic Approach
• Consider an example of Ecommerce
application, that authorizes customer, takes an
order, check products inventory, authorize
payment and ships ordered products. This
application consists of several components
including e-Store User interface for customers
(Store web view) along with some backend
services to check products inventory,
authorize and charge payments and shipping
orders.
Despite having different
components/modules/services, the application is built
and deployed as one Application for all platforms.
Benefits:
• Simple to develop
• Simple to test
• Simple to deploy
• Simple to scale horizontally by running
multiple copies behind a load balancer
Drawbacks:
• Maintenance
• The size of the application can slow down the
start-up time.
• You must redeploy the entire application on
each update.
• Monolithic applications can also be
challenging to scale when different modules
have conflicting resource requirements.
Microservices Architecture
• Microservices are an approach to application development in
which a large application is built as a suite of modular
services.
• Each module supports a specific business goal and uses a
simple, well-defined interface to communicate with other sets
of services.
• Instead of sharing a single database as in Monolithic
application, each microservice has its own database. Having a
database per service is essential if you want to benefit from
microservices, because it ensures loose coupling. Each of the
services has its own database. Moreover, a service can use a
type of database that is best suited to its needs.
• Consider the same example of the e-
commerce application, which consists of
several components/modules. Define each
component/module as a separate loosely
coupled service depending on the
requirement, which may collaborate with each
other based on the scenario.
Their are following services for a
complete application:
• Authorization Service
• Order Service
• Catalog Service
• Cart Service
• Payment Service
• Shipping Service
Benefits:
• Microservices Enables the continuous delivery
and deployment of large, complex
applications.
• Better testability
• Better deployability
• Each microservice is relatively small
• Comfortable for a developer to understand
Drawbacks:
• Developers must deal with the additional
complexity of creating a distributed system.
• Testing is more difficult as compared to
Monolith applications.
• Developers must implement the inter-service
communication mechanism.
• Implementing use cases that span multiple
services without using distributed transactions
is difficult.
Conclusion
• Well, both approaches have their pros and cons, but
it depends on each scenario or product/project
requirements and which tradeoff you choose. As
monolithic approach best suits for lightweight
applications It is recommended to adopt Monolithic
approach first and depending on the
needs/requirement gradually shift towards
Microservices approach.

You might also like