Scalability in Distributed Systems: What It Means and How to Get It

Image
Image

Scalability is the ability of a system to handle more work by adding more resources. The test is simple. Double the machines, and see whether throughput nearly doubles while response time stays flat.

Here is the concrete version. A service runs on 10 servers and handles 1,000 requests per second at 100 ms. Add 10 more servers. If it now handles close to 2,000 requests per second at 100 ms, it scales well.

Real systems rarely reach that. Going from 10 to 20 servers often gives 1,600 requests per second, not 2,000. The gap is the cost of coordination between nodes.

The Two Ways to Scale

Vertical scaling means making one machine bigger. You add CPU cores, memory or faster disks.

Horizontal scaling means adding more machines and splitting the work between them. Distributed systems are built for this.

Vertical scalingHorizontal scaling
What you addA bigger machineMore machines
Upper limitThe largest machine you can buyNo hard limit
Code changesUsually noneSharding, routing, coordination
Failure effectOne machine down means full outageOne node down means reduced capacity
Cost curveRises steeply at the top endClose to linear

Vertical scaling is easier and it is often the right first step. It stops working when the biggest machine is still too small.

What Actually Limits Scaling

Two things stop a system from scaling in a straight line.

The first is serial work. Any part that must run on one node caps the whole system. If 5 percent of the work must run on one node, the best speedup is 20 times.

The second is crosstalk. Nodes must agree on state, so they exchange messages. The number of pairs grows fast. Ten nodes have 45 pairs, and 100 nodes have 4,950.

Past a point, extra nodes spend more time coordinating than working. Throughput stops rising and can fall.

Why Databases Are the Hard Part

Stateless web servers are easy to scale. You run more copies behind a load balancer and the work splits itself.

Databases hold state, so a copy is not free. Every write must reach every replica that serves it.

Reads scale first. You add read replicas and send queries to them. This works because reads do not conflict with each other.

Writes scale by sharding. You split rows across machines by a key, such as user ID. Each shard owns part of the data.

Sharding creates three new problems. A query that spans shards must contact many machines. A popular key makes one shard hot. A transaction across two shards needs a distributed protocol.

A sharded database is called scalable only for the access patterns it was sharded for. The same logic applies to a distributed file system such as HDFS.

The Trade-Off Scaling Creates

More nodes means more failures. With 1,000 machines, something is broken every day.

So a scalable system must also be a fault tolerant system. That usually means replicating data, which then means choosing between strong consistency and low latency during a network fault.

You also pay in tail latency. A request that touches 50 shards waits for the slowest of the 50. If each shard is slow 1 percent of the time, that request is slow about 39 percent of the time.

Coordination between nodes often needs a distributed lock, which adds one more round trip to every write.

How to Measure It

Do not report a single number. Measure three things as load rises.

Throughput is requests per second. Latency is the p99 response time, not the average. Cost is dollars per million requests.

A system scales well when throughput rises with machines, p99 stays flat, and cost per request does not climb.

How to Prepare

TAGS
System Design Interview
System Design Fundamentals
CONTRIBUTOR
Arslan Ahmad
Arslan Ahmad
ex-FAANG engineering manager and author or Grokking series.

GET YOUR FREE

Coding Questions Catalog

Design Gurus Newsletter - Latest from our Blog
Boost your coding skills with our essential coding questions catalog.
Take a step towards a better tech career now!
Explore Answers
What is the retention period of Atlassian?
What is coding round in an interview?
Which language is used in distributed systems?
What Is the Intel Interview Process Like? (Round by Round)
Intel's software engineer interview: online assessment, recruiter screen, technical rounds, and a closing manager conversation, usually within about a month.
What Is the Walmart Global Tech Interview Process Like? (Round by Round)
Walmart Global Tech's loop: a HackerRank assessment with Python and SQL, split LLD and HLD design rounds, and a conversational hiring-manager close with STAR behavioral discipline.
Why do I want a remote job?
Related Courses
New
Grokking the AI System Design Interview course cover
Grokking the AI System Design Interview
Learn to design AI systems the way interviewers expect: classic ML products, LLM and RAG architectures, and agentic systems, all through the lens of the system design interview.
4.6
(3,192 learners)
Discounted price for Your Region

$99

Grokking the Coding Interview: Patterns for Coding Questions course cover
Grokking the Coding Interview: Patterns for Coding Questions
The 24 essential patterns behind every coding interview question. Available in Java, Python, JavaScript, C++, C#, and Go. The most comprehensive coding interview course with 543 lessons. A smarter alternative to grinding LeetCode.
4.6
Discounted price for Your Region

$197

Grokking Modern AI Fundamentals course cover
Grokking Modern AI Fundamentals
Master the fundamentals of AI today to lead the tech revolution of tomorrow.
4.1
Discounted price for Your Region

$72

Design Gurus logo
One-Stop Portal For Tech Interviews.
About Us
Our Team
Careers
Partners
Contact Us
Become Affiliate
Copyright © 2026 Design Gurus, LLC. All rights reserved.