Node.js8 min read
Microservices Architecture
Build microservices with Node.js. Learn service communication.
Michael Torres
December 19, 2025
0.0k0
Microservices Architecture
Monolith vs Microservices
Monolith:
One big application
├── User management
├── Orders
├── Payments
└── Notifications
All in one codebase, one database, one deployment
Microservices:
Multiple small services
├── User Service (port 3001)
├── Order Service (port 3002)
├── Payment Service (port 3003)
└── Notification Service (port 3004)
Each has own codebase, database, deployment
Benefits
- Independent deployment - Update one service without affecting others
- Technology flexibility - Use different tech for different services
- Better scalability - Scale only services that need it
- Fault isolation - One service crash doesn't kill everything
Basic Service Structure
// user-service/index.js
const express = require('express');
const app = express();
app.get('/users/:id', async (req, res) => {
const user = await User.findById(req.params.id);
res.json(user);
});
app.listen(3001);
// order-service/index.js
const express = require('express');
const app = express();
app.get('/orders/:id', async (req, res) => {
const order = await Order.findById(req.params.id);
res.json(order);
});
app.listen(3002);
Service Communication
const axios = require('axios');
app.get('/orders/:id', async (req, res) => {
const order = await Order.findById(req.params.id);
const userResponse = await axios.get(
`http://user-service:3001/users/${order.userId}`
);
res.json({
...order.toObject(),
user: userResponse.data
});
});
API Gateway
const express = require('express');
const { createProxyMiddleware } = require('http-proxy-middleware');
const app = express();
app.use('/api/users', createProxyMiddleware({
target: 'http://user-service:3001',
changeOrigin: true
}));
app.use('/api/orders', createProxyMiddleware({
target: 'http://order-service:3002',
changeOrigin: true
}));
app.listen(3000);
Key Takeaway
Microservices enable independent scaling and deployment. Use API gateway as entry point. Each service has own database. Start simple, split when needed.
#Node.js#Microservices#Architecture#Distributed