Topic 1-Monolithic Architecture
Topic 1-Monolithic Architecture
Topic 1-Monolithic Architecture
Monolithic
Architecture
Monolithic Application UI
Architecture
Business Logic
Monolithic architecture is a traditional
software design approach where all
components and features of an application
are tightly integrated into a single codebase
and executed as a single unit.
Database
Monolithic Architecture
Traditional Web Application Architecture
StoreFront Accounting
UI Service
MySQL
Browser Apache Database
Inventory Shipping
Service Service
Tomcat
Single Codebase
Key characteristics of Source Files Configuration
Libraries Test
(Dependencies) (Unit, Integration,
Single Codebase: E2E, etc.)
The entire application's code, Build Scripts
including user interfaces, business (e.g., Makefile,
build.gradle,
logic, and data storage, is written package.json.)
and maintained within a single Documentation
codebase or project. Version Control (Readme, Wiki,
(e.g., Git) API Docs, etc.)
Other Assets
(Images, CSS, etc.)
Key characteristics of Monolithic Architecture
Module A Module B
Frontend/UI
Technology Stack Consistency:
Monolithic applications often use a Backend/API
consistent technology stack & Application Logic
throughout, limiting the choice of
Database
the best tools or languages for
specific tasks. Server
Monolithic architectures were popular in the past due to their
simplicity and ease of development.
In this example, we'll consider a basic e-commerce application with the following components:
Database: Stores product Technology Stack Consistency: The entire application uses a
information, customer data, and
consistent technology stack, limiting the choice of tools for
order history.
specific tasks.
Example: Monolithic E-Commerce Application
Pros and Cons
Frontend: The user interface Pros:
where customers browse Simplicity: The development process is straightforward due to
products, add items to their the unified codebase.
cart, and place orders. Ease of Deployment: Updating the application involves
deploying a single unit, reducing complexities.
Resource Efficiency: Shared resources can be more efficiently
Backend: Handles business
utilized for smaller applications.
logic, manages the product
catalog, processes orders, and Cons:
communicates with the Scalability: Scaling the application can be difficult, as all
database components must be scaled together, even if some components
require more resources than others.
Database: Stores product Flexibility: Choosing the best technology or language for each
information, customer data, and component may not be possible due to the consistent stack.
order history. Maintenance: As the application grows, maintenance becomes
complex, and changes can affect the entire system.
Key components of monolithic applications Frontend/UI Backend/API &
A monolithic application typically consists of key components tightly Application Logic
User Interface
integrated into a single codebase. Routing
Components Authentication
User Interface (UI) Layer: This component represents the user
Templates
interface of the monolithic application. It includes user interface Business Logic
Monolithic application
Data Storage
Backend/API & Application Logic: This component encompasses
the backend of the application, handling requests, authentication, Queries
Utility
Libraries: This component includes utility libraries and
dependencies used throughout the application stack to Libraries
Longer Development Cycles: As the codebase grows, the time needed to develop
and test new features increases, potentially slowing down development cycles.
Thank you!