Instiq
Chapter 7 · System architecture·v1.0.0·Updated 7/7/2026·~12 min

What's changed: Initial version (topic 2.13, subtopics 2.13.1–2.13.4)

7.2Capacity Planning and Scalability

Key points

Learn the mindset behind capacity planning for future load growth, and the difference between scale up/down (vertical) and scale out/in (horizontal). Understand the prerequisite for scaling out—a stateless design that externalizes databases and sessions—plus automating machine reconfiguration with configuration management tools and VM images, and distributing load with a load balancer or DNS round robin.

As usage grows, the current server setup eventually cannot keep up. Rather than scrambling to add capacity reactively, capacity planning means forecasting future load and deciding in advance when and how to expand. There are two broad directions for expansion, and the choice shapes the system design itself.

7.2.1Scale up/down vs. scale out/in

  • Scale up (vertical scaling) strengthens a single machine (more CPU, memory, storage); the reverse is scale down. Simple to implement, but it has a physical ceiling, and upgrading often requires downtime.
  • Scale out (horizontal scaling) adds more machines of the same kind to raise capacity; the reverse is scale in. It has a much higher theoretical ceiling, and adding or removing one machine need not stop the whole service—but it presupposes the stateless design described next.

Continue reading — free sign-up

You're reading the free preview. Sign up free to read this section in full, plus every chapter (including 4+) and all questions.