sysdesign-scalability-horizontal-vs-vertical

Classify components and select vertical, horizontal, or partitioning scaling strategies.

Updated Apr 23, 2026
One-click install
npx skills add https://github.com/danilods/matilha-sysdesign-pack --skill sysdesign-scalability-horizontal-vs-vertical
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: sysdesign-scalability-horizontal-vs-vertical
Source: https://github.com/danilods/matilha-sysdesign-pack/tree/main/skills/sysdesign-scalability-horizontal-vs-vertical
Command: npx skills add https://github.com/danilods/matilha-sysdesign-pack --skill sysdesign-scalability-horizontal-vs-vertical

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill helps architects and engineers choose the correct scaling path for a service by clearly distinguishing vertical, horizontal, and partitioning strategies and by surfacing guidance on when to externalize state.

Core Features & Use Cases

  • Classify components into Stateless, Stateful Local, and Stateful Shared-Write to determine the scaling approach.
  • Provide a structured workflow to decide horizontal, vertical, or partitioned scaling with cost and risk awareness.
  • Use during architecture planning, capacity planning, and incident reviews to prevent overprovisioning or underprovisioning.

Quick Start

Describe the component to scale, the observed bottleneck or golden signal, and the axis of growth chosen (horizontal, vertical, or partitioning) to document the plan.

Frequently Asked Questions about sysdesign-scalability-horizontal-vs-vertical

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
What is the best way to choose between horizontal and vertical scaling for a service?

Horizontal scaling adds more machines, vertical scaling increases machine capacity, and partitioning divides data to manage capacity growth by classifying components as stateless, stateful local, or shared-write before implementing the architecture plan.

How do I scale a stateful service without running into write conflicts?

To scale a stateful service, classify it as stateful local or shared-write, evaluate the need to externalize state, and apply a partitioning strategy to distribute data and avoid write conflicts during capacity planning.

When do I need to externalize state for horizontal scaling?

You need to externalize state when your component is classified as stateful shared-write, allowing horizontal scaling by moving data out of the service to prevent write conflicts and capacity bottlenecks.

Does vertical scaling work for stateless services facing capacity bottlenecks?

Vertical scaling works for stateless services by increasing machine capacity, but horizontal scaling is typically preferred for stateless components to handle capacity growth more efficiently during architecture planning.

How do I document a scaling plan during an incident review?

To document a scaling plan during an incident review, name the affected component, identify the golden signal or bottleneck, classify its state type, and record the chosen scaling axis to formalize the capacity adjustment.

What are the limitations of vertical scaling for shared-write components?

The limitation of vertical scaling for shared-write components is hitting hardware capacity ceilings, requiring partitioning or state externalization to resolve bottlenecks and continue scaling architecture effectively.