Two ways to add capacity
- Vertical scaling grows one machine: more CPU, more RAM, faster disks.
- Horizontal scaling adds more machines that share the load behind a balancer.
Why vertical is tempting
- No code changes: the app keeps running as a single process, so nothing has to learn about coordination.
- Simpler operations: one node to patch, monitor, and reason about.
Where vertical scaling stops
- A hard ceiling: the biggest instance still has a finite size and price climbs steeply.
- Single point of failure: when that one big node dies the whole service is down.
Why horizontal scaling wins at scale
- Near linear capacity: add nodes to add throughput, often on cheaper commodity hardware.
- Fault tolerance: losing one node of many degrades rather than destroys the service.
- The cost: the app must tolerate many instances, which pushes you toward stateless design and shared data stores.
Key idea
Vertical scaling is the fast simple first step, but it has a ceiling and a single failure point, so durable systems eventually scale horizontally across many cheaper nodes.