← Lessons

quiz vs the machine

Gold1420

System Design

Vertical vs Horizontal Scaling Revisited

Growing by adding power to one machine or by adding more machines.

5 min read · core · beat Gold to climb

Two ways to grow

Vertical scaling makes one machine bigger with more CPU, memory, or faster disks. Horizontal scaling adds more machines and spreads load across them.

Vertical strengths and limits

  • It is simple because the code does not change, you just run on a larger box.
  • It hits a ceiling, the biggest machine you can buy, and that machine is a single point of failure.
  • Cost often grows faster than capacity at the high end.

Horizontal strengths and limits

  • It scales far beyond one machine and improves fault tolerance because one node failing leaves others running.
  • It demands a way to distribute load and often to shard state, which adds coordination and consistency challenges.
  • Stateless services scale horizontally easily, while stateful ones need careful partitioning.

A practical path

Many systems scale vertically first because it is cheap and simple, then go horizontal once they near the ceiling or need redundancy. Designing for horizontal from the start helps when you know growth is coming.

Vertical buys time, horizontal buys headroom.

Key idea

Vertical scaling adds power to one machine and stays simple but hits a ceiling while horizontal scaling adds machines for near unlimited growth and fault tolerance at the cost of coordination.

Check yourself

Answer to earn rating on the learn ladder.

1. What is a key limit of vertical scaling?

2. What does horizontal scaling add to fault tolerance?