Understand the two core approaches to scaling systems — vertical and horizontal — and when to use each in real-world architectures.
Scalability is a system's ability to handle increased load by adding resources without degrading performance.
Add more power to your existing machine — more CPU, RAM, faster storage.
Pros: Simple, no code changes, works well for databases
Cons: Hard ceiling, single point of failure, expensive at high end
Add more machines and distribute load across them.
Pros: No hard ceiling, high availability, commodity hardware
Cons: Complexity, shared state management, network latency
| Vertical | Horizontal | |
|---|---|---|
| Complexity | Low | High |
| Cost at scale | High | Lower |
| Availability | Low (SPOF) | High |
| Limit | Hard ceiling | Virtually unlimited |
Start vertical. Scale horizontal when you need availability or hit vertical limits.