Zero-Downtime Deploys with PM2: Why `reload` Beats `restart` (and When It Doesn't)
PM2's reload command replaces cluster workers one at a time so deploys don't drop requests — but only if your app is stateless, sends a ready signal, and handles SIGINT correctly. Here's the setup and how to verify it.