In Deploying a Full Stack SaaS, I got the app running in production on a single instance: Docker images, a CI/CD pipeline, one NestJS container and one Postgres database behind it. That setup will carry a real SaaS further than most people expect. It also has a hard ceiling. The day you hit it, "just add another server" turns out to be a much bigger sentence than it sounds.

This is Module 4 of the Full Stack SaaS Masterclass, and this article is about what actually changes when you go from one instance to several. It's less about picking an autoscaling number and more about the assumptions your app quietly made when it only ever ran on one box.

What follows is the application-level changes that have to happen before more servers help you at all, rather than a walkthrough of configuring Kubernetes. Get those wrong and adding capacity just spreads the same bugs across more machines.

Why one server works until it very suddenly doesn't

A single instance is simple because everything lives in one place: in-memory session storage, an in-process rate limiter, a WebSocket connection map, a scheduled job that runs "once" because there's only one process to run it. None of that is wrong on day one. It's the correct amount of complexity for the traffic you have.