Speak the scaling vocabulary — load balancing, caching, sharding
Scale arguments go wrong when the words do: horizontal versus vertical, cache-aside versus write-through, shard by range versus hash. This lesson fixes the Primer's vocabulary and lines it up with DDIA's partitioning and replication so one argument covers both worlds.
At a glance
| When | A bottleneck review needs the lever named before the budget is spent; A scaling proposal mixes terms and the team needs one vocabulary |
|---|---|
| Where | Data Engineering System Design |
| Why | Scaling debates are won by whoever names the lever and its cost first — vocabulary is the lever. |
Learning objectives
- Use load balancer, cache, and shard vocabulary precisely in design arguments
- Translate between the Primer's scaling terms and DDIA's partitioning/replication
- Pick the first scaling lever for a bottleneck instead of reaching for all of them
What you need
- Lesson 2's estimates (scaling needs numbers to bite on)
- One real bottleneck to reason about
Steps
- Learn the three levers in one place — the Primer's scaling vocabulary is load balancers, caching, and sharding, taught together so their interactions are visible from day one. (from ref-system-design-primer )
- Use the standard on-ramp — the Primer is the standard on-ramp for the estimation and tradeoff vocabulary this stage's interview path needs, so its terms are the ones interviewers and reviewers will expect you to use. (from ref-system-design-primer )
- Translate to the canonical mechanisms — DDIA teaches the same ideas as replication and partitioning, so sharding is partitioning, and load balancing plus caching sit on top of replicated copies. (from ref-ddia )
- Anchor the translation in production terms — the description maps partitioning to lakehouse, so your sharding argument is really a partition-layout argument about the tables you already curate. (from ref-ddia )
- Check scaling choices against deployed guidance — AWS's best-practice guidance (Well-Architected pillars) shows which levers ship together in real architectures, and at what cost to cost and operability. (from ref-aws-arch-center )
Check yourself
- You can name which lever you would pull FIRST for a read-bound serving path, and why cache precedes shard in that order.
- Asked to shard a lakehouse table, you answer with a partition key and skew story, not with the word sharding alone.
Worked example
Lever selection order — from ref-system-design-primer
Bottleneck -> first lever -> canonical mechanism
read-heavy serving -> cache, then LB -> replication
write throughput -> partition the writes -> partitioning
dataset > one node -> shard by access key -> partitioning
spiky traffic -> LB + autoscale -> replication
Rule: one lever at a time; measure before adding the second.
Sourced from
Security scan
Last sweep 2026-10-24: 0 finding(s), 0 marked as examples.
Common gotchas
- Adding replicas scales reads, not writes — replication and partitioning answer different overload shapes.
- A cache without an invalidation story is a correctness bug with a latency bonus.
- Hash partitioning kills range scans; range partitioning creates hot keys — pick per access pattern.
Production considerations
- Record the chosen scaling lever and its expected headroom in the design doc.
- Watch partition skew after every key change — hot keys masquerade as capacity problems.
Diagram
scaling vocabulary
|
|- too slow reads --> 1) cache 2) load-balance replicas
|- too much data --> shard / partition (by hash or range)
|- too many writers --> partition first; replicas do not help writes
|
|- primer words: load balancer | cache | shard
|- ddia words: replication | | partitioning
|
--> name the lever, its cost, and its skew story
Registry stats
| Verification | community · Oct 24, 2026 |
|---|---|
| Completeness | 81 |
| Trust multiplier | ×1.25 |
| Composite | 34.15 · adequate |
| Freshness | 0 days since last source check |
| Difficulty | intermediate |
| Version | 0.1.0 |
| License | CC-BY-4.0 |
| Security flags | none |
Did this solve your problem?
Speak the scaling vocabulary — load balancing, caching, sharding