#3 Understanding Microservices (Spring Boot Fundamentals)

What is Microservices?
Microservices architecture is a way of building an application as a collection of small, independent services, where:
Each service does one specific job
Each service runs independently
Services communicate using HTTP / REST / JSON
Instead of one big application, we build many small applications.
Before Microservices: Monolithic Application
What is a Monolith?
Entire application is one single unit
All features are tightly coupled
Example: Online Shopping App (Monolith)
[ User Module ]
[ Product Module ]
[ Order Module ]
[ Payment Module ]
[ Notification Module ]
↓
Single Application
Single Database
Single Deployment
Problems with Monolith
If one feature fails → whole app can crash
Deployment is risky
Scaling is hard
Technology lock-in
Large codebase = slow development
Example problem:
Payment service has a bug → entire website goes down
Microservices Architecture
What changes?
Each feature becomes its own service.
User Service
Product Service
Order Service
Payment Service
Notification Service
Each service:
Has its own codebase
Has its own database
Can be deployed independently
Example: E-Commerce Application
Monolith:
User + Cart + Payment + Delivery → One App
Microservices:
User Service → login, signup
Product Service → products, search
Order Service → order processing
Payment Service → payments
Notification Service→ email/SMS
Communication:
Order Service → Payment Service → Notification Service
Using REST APIs.
Why Microservices Are Needed
Scalability
High traffic on payments?
Scale only Payment Service, not whole app.
Fault Isolation
Payment service fails
Product browsing still works
Faster Development
Different teams work on different services
No code conflicts
Independent Deployment
Update notification logic
Deploy only Notification Service
Why Spring Boot is Perfect for Microservices
Spring Boot:
Creates standalone services
Embedded servers
Fast startup
Easy REST APIs
Typical setup:
Each Microservice = One Spring Boot Application
How Microservices Communicate
Service A → HTTP → Service B
→ JSON
Example:
GET /users/101
Response:
{
"id": 101,
"name": "Neha"
}
Are Microservices Always Good?
NO
When NOT to use:
Small applications
Small teams
Simple business logic
Microservices introduce:
Network latency
Distributed debugging
DevOps complexity
Conclusion:
Microservices architecture is an approach where an application is built as a set of small, independent services, each responsible for a specific business function and communicating through lightweight protocols like REST.
