System Design Fundamentals
Back to Foundations and Building Blocks

Scaling Basics — Vertical vs Horizontal

The first system design decision. When to scale up (bigger box) vs scale out (more boxes), and the trade-offs of each. FIND_VIDEO: search 'vertical vs horizontal scaling explained' — recommended channel: ByteByteGo / Gaurav Sen. Aim for 10 min or under.

5 minutesVideo LessonPDF notes
🎯 Free Guest Mode: You are learning for free. Sign in to save your completion progress and quiz answers.
Loading progress...

Key moments

  1. Vertical Scaling Definition — Covers the mechanics of scaling up by adding CPU, RAM, and storage to a single server instance.
  2. Vertical Scaling Trade-offs — Examines short-term cost and simplicity against the risks of physical hardware limits and single points of failure.
  3. Horizontal Scaling Definition — Introduces scaling out by distributing workloads across multiple commodity nodes using load balancers.
  4. Horizontal Scaling Trade-offs — Analyzes the benefits of high availability and elasticity versus the engineering complexity of sharding and data consistency.
  5. Scaling Decision Framework — Details how workload predictability, budget, and operational overhead guide the choice between scaling strategies.
PDF notes

Frequently asked questions

When is vertical scaling the preferred choice over horizontal scaling?

Vertical scaling is ideal for early-stage applications or steady workloads where operational simplicity and fast time-to-market outweigh high-availability redundancy.

Why is horizontal scaling harder for databases than for web servers?

Web servers are stateless and route requests independently, while databases hold state that requires complex synchronization, replication, and partition sharding across nodes.

What is the primary operational risk of vertical scaling?

Vertical scaling creates a single point of failure where hardware faults, OS patching, or maintenance take down the entire system.

How does auto-scaling integrate with horizontal scaling?

Auto-scaling tracks operational metrics like CPU usage or queue depth to dynamically add or remove horizontal nodes during traffic bursts.

How was this lesson?

Your feedback helps us refine explanations and catch bugs.