โ† Back to list

๐—ฆ๐—ฐ๐—ฎ๐—น๐—ถ๐—ป๐—ด ๐˜„๐—ถ๐˜๐—ต ๐—ฃ๐— ๐Ÿฎ (๐—ฃ๐—ฟ๐—ผ๐—ฑ๐˜‚๐—ฐ๐˜๐—ถ๐—ผ๐—ป-๐—ฅ๐—ฒ๐—ฎ๐—ฑ๐˜† ๐—”๐—ฝ๐—ฝ๐—ฟ๐—ผ๐—ฎ๐—ฐ๐—ต) โ€” (๐—ฃ๐—ฎ๐—ฟ๐˜-๐—œ๐—œโ€ฆ

โšก ๐—ฆ๐—ฐ๐—ฎ๐—น๐—ถ๐—ป๐—ด ๐˜„๐—ถ๐˜๐—ต ๐—ฃ๐— ๐Ÿฎ (๐—ฃ๐—ฟ๐—ผ๐—ฑ๐˜‚๐—ฐ๐˜๐—ถ๐—ผ๐—ป-๐—ฅ๐—ฒ๐—ฎ๐—ฑ๐˜† ๐—”๐—ฝ๐—ฝ๐—ฟ๐—ผ๐—ฎ๐—ฐ๐—ต) โ€” (๐—ฃ๐—ฎ๐—ฟ๐˜-๐—œ๐—œ โ€” ๐—ฃ๐— ๐Ÿฎ)

Sarang Sutar ยท 2026-05-21 06:40 ยท 0 claps ยท 2.3 min read
#nodejs #pm2 #system-design-concepts #scalability
Open on Medium โ†—
Wiki topics: ๐ŸŒ ยท Web Development

๐—ฆ๐—ฐ๐—ฎ๐—น๐—ถ๐—ป๐—ด ๐˜„๐—ถ๐˜๐—ต ๐—ฃ๐— ๐Ÿฎ (๐—ฃ๐—ฟ๐—ผ๐—ฑ๐˜‚๐—ฐ๐˜๐—ถ๐—ผ๐—ป-๐—ฅ๐—ฒ๐—ฎ๐—ฑ๐˜† ๐—”๐—ฝ๐—ฝ๐—ฟ๐—ผ๐—ฎ๐—ฐ๐—ต) โ€” (๐—ฃ๐—ฎ๐—ฟ๐˜-๐—œ๐—œ โ€” ๐—ฃ๐— ๐Ÿฎ)

โšก ๐—ฆ๐—ฐ๐—ฎ๐—น๐—ถ๐—ป๐—ด ๐˜„๐—ถ๐˜๐—ต ๐—ฃ๐— ๐Ÿฎ (๐—ฃ๐—ฟ๐—ผ๐—ฑ๐˜‚๐—ฐ๐˜๐—ถ๐—ผ๐—ป-๐—ฅ๐—ฒ๐—ฎ๐—ฑ๐˜† ๐—”๐—ฝ๐—ฝ๐—ฟ๐—ผ๐—ฎ๐—ฐ๐—ต) โ€” (๐—ฃ๐—ฎ๐—ฟ๐˜-๐—œ๐—œ โ€” ๐—ฃ๐— ๐Ÿฎ)

If Cluster is the engine, ๐—ฃ๐— ๐Ÿฎ ๐—ถ๐˜€ ๐˜๐—ต๐—ฒ ๐—ฎ๐˜‚๐˜๐—ผ๐—ฝ๐—ถ๐—น๐—ผ๐˜.

โ€ข Runs your app in ๐—ฐ๐—น๐˜‚๐˜€๐˜๐—ฒ๐—ฟ ๐—บ๐—ผ๐—ฑ๐—ฒ โ€ข Auto-restarts crashed apps โ€ข Built-in ๐—น๐—ผ๐—ฎ๐—ฑ ๐—ฏ๐—ฎ๐—น๐—ฎ๐—ป๐—ฐ๐—ถ๐—ป๐—ด โ€ข Monitoring, logs, metrics โ€ข Zero-downtime reloads

โš™๏ธ Install PM2 ๐—ป๐—ฝ๐—บ ๐—ถ๐—ป๐˜€๐˜๐—ฎ๐—น๐—น -๐—ด ๐—ฝ๐—บ๐Ÿฎ

๐Ÿš€ Run App in Cluster Mode ๐—ฝ๐—บ๐Ÿฎ ๐˜€๐˜๐—ฎ๐—ฟ๐˜ ๐—ฎ๐—ฝ๐—ฝ.๐—ท๐˜€ -๐—ถ ๐—บ๐—ฎ๐˜…

๐Ÿ‘‰ -๐—ถ ๐—บ๐—ฎ๐˜… = use all CPU cores

๐Ÿ“Š Useful Commands

โ€ข ๐—ฝ๐—บ๐Ÿฎ ๐—น๐—ถ๐˜€๐˜ # running apps โ€ข ๐—ฝ๐—บ๐Ÿฎ ๐—น๐—ผ๐—ด๐˜€ # logs โ€ข ๐—ฝ๐—บ๐Ÿฎ ๐—บ๐—ผ๐—ป๐—ถ๐˜ # real-time monitoring โ€ข ๐—ฝ๐—บ๐Ÿฎ ๐—ฟ๐—ฒ๐˜€๐˜๐—ฎ๐—ฟ๐˜ ๐—ฎ๐—ฝ๐—ฝ # restart app โ€ข ๐—ฝ๐—บ๐Ÿฎ ๐—ฟ๐—ฒ๐—น๐—ผ๐—ฎ๐—ฑ ๐—ฎ๐—ฝ๐—ฝ # zero downtime reload โ€ข ๐—ฝ๐—บ๐Ÿฎ ๐˜€๐˜๐—ผ๐—ฝ ๐—ฎ๐—ฝ๐—ฝ # stop app

๐Ÿ“ Ecosystem Config (Production Setup)

module.exports = {
 apps: [
 {
 name: โ€œnode-appโ€,
 script: โ€œ./app.jsโ€,
 instances: โ€œmaxโ€,
 exec_mode: โ€œclusterโ€,
 env: {
 NODE_ENV: โ€œproductionโ€
 }
 }
 ]
};

Run with: ๐—ฝ๐—บ๐Ÿฎ ๐˜€๐˜๐—ฎ๐—ฟ๐˜ ๐—ฒ๐—ฐ๐—ผ๐˜€๐˜†๐˜€๐˜๐—ฒ๐—บ.๐—ฐ๐—ผ๐—ป๐—ณ๐—ถ๐—ด.๐—ท๐˜€

โœ… Pros โ€ข Easy to use โ€ข Production-grade stability โ€ข Auto-restart + monitoring โ€ข Zero downtime deployments

โŒ Cons โ€ข Less low-level control โ€ข Adds dependency layer

โš”๏ธ Cluster vs PM2 (Quick Comparison) | ๐—™๐—ฒ๐—ฎ๐˜๐˜‚๐—ฟ๐—ฒ | ๐—–๐—น๐˜‚๐˜€๐˜๐—ฒ๐—ฟ ๐— ๐—ผ๐—ฑ๐˜‚๐—น๐—ฒ | ๐—ฃ๐— ๐Ÿฎ | โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” - | Setup | Manual | Easy |

| Monitoring | โŒ | โœ… |

| Auto Restart | โŒ | โœ… |

| Load Balancing | Basic | Advanced |

| Production Ready | โš ๏ธ | โœ… |

| Zero Downtime | โŒ | โœ… | โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” โ€” -

๐Ÿงฉ ๐—ช๐—ต๐—ฒ๐—ป ๐˜๐—ผ ๐—จ๐˜€๐—ฒ ๐—ช๐—ต๐—ฎ๐˜?

๐Ÿ‘‰ Use ๐—–๐—น๐˜‚๐˜€๐˜๐—ฒ๐—ฟ when โ€ข You want fine-grained control โ€ข Building custom orchestration logic โ€ข Learning internals

๐Ÿ‘‰ Use ๐—ฃ๐— ๐Ÿฎ when: โ€ข You want quick production deployment โ€ข Need monitoring & reliability โ€ข Running real-world apps

๐Ÿง  Pro-Level Insights โ€ข Cluster uses R๐—ผ๐˜‚๐—ป๐—ฑ-R๐—ผ๐—ฏ๐—ถ๐—ป L๐—ผ๐—ฎ๐—ฑ B๐—ฎ๐—น๐—ฎ๐—ป๐—ฐ๐—ถ๐—ป๐—ด (since Node v16+) โ€ข PM2 internally uses Cluster for scaling โ€ข For massive scale โ†’ combine with: โ€ข Nginx (reverse proxy) โ€ข Docker + Kubernetes โ€ข Load balancers (AWS ALB)

#NodeJS #Backend #Scalability #DevOps #JavaScript #PM2 #SystemDesign

๐Ÿ” What PM2 Does

LinkedIn โ€” https://www.linkedin.com/in/sarangsutar Post URL โ€” https://www.linkedin.com/posts/sarangsutar_nodejs-backend-scalability-ugcPost-7460953956727361536-AjU3?utm_source=share&utm_medium=member_desktop&rcm=ACoAAAM3adIBdnb5nKVkKEE8YiOIWUMc4fa6nLY

console.log(โ€œHappy Codingโ€);


๋ฉ”ํƒ€๋ฐ์ดํ„ฐ
post_id
0f64e71b977e
slug
-0f64e71b977e
url
https://medium.com/@sarangsutar/-0f64e71b977e
canonical_url
https://medium.com/@sarangsutar/-0f64e71b977e
author_url
https://medium.com/@sarangsutar
status
ok
fetched_at
2026-06-13 00:08:42