Cost and Capacity Trade-offs
Listed inCost and Capacity Trade-offsSystem Designon
Every design decision priced out — the cheapest system that meets the requirement is the correct one.
Assembling known parts into a system that meets a stated requirement — the method, the recurring patterns, and the numbers that decide between them.
17 articles
Listed inCost and Capacity Trade-offsSystem Designon
Every design decision priced out — the cheapest system that meets the requirement is the correct one.
Listed inStateless ServicesSystem Designon
Pushing state to the edges so any instance can serve any request, and where the state actually goes instead.
Listed inAPI Gateways and Backends for FrontendsSystem Designon
One entry point for auth, routing, and rate limiting — and a per-client shape so mobile is not served desktop payloads.
Listed inDesigning for FailureSystem Designon
Single points of failure, graceful degradation, and deciding what the system does when a dependency is gone.
Listed inScaling Up and Scaling OutSystem Designon
Vertical scaling until it stops being cheap, then horizontal — and what horizontal costs you in complexity.
Listed inCQRS and Event SourcingSystem Designon
Splitting the read and write models, storing facts instead of state, and the replay cost you sign up for.
Listed inPush vs Pull DeliverySystem Designon
Fan-out on write against fan-out on read, and the celebrity problem that breaks whichever you picked.
Listed inBack-of-the-Envelope EstimationSystem Designon
QPS, storage growth, and bandwidth from first principles — the arithmetic that rules out half your options immediately.
Listed inPartitioning DataSystem Designon
Choosing a partition key, hot partitions, consistent hashing, and the resharding you hope never to do.
Listed inGeospatial SystemsSystem Designon
Geohashes, quadtrees, and S2 cells — turning "find things near me" into an indexed lookup.
Listed inRequirements and ConstraintsSystem Designon
Separating functional from non-functional, and pinning down scale, latency, and consistency before drawing anything.
Listed inChoosing a DatastoreSystem Designon
Matching the access pattern to the engine, and defending the choice with something better than familiarity.
Listed inSearch SystemsSystem Designon
Inverted indexes, analysers, ranking, and why search is a separate system rather than a LIKE query.
Listed inCommunicating a DesignSystem Designon
Drawing the diagram that survives review: components, data flow, and the trade-offs written down beside it.
Listed inWhat System Design IsSystem Designon
Choosing between architectures under constraints you were given, rather than inventing anything new.
Listed inRead-Heavy vs Write-HeavySystem Designon
The single question that most shapes a design — replicas and caches on one side, partitioning and buffering on the other.
Listed inCDNs and the EdgeSystem Designon
Serving bytes from near the user, cache keys and invalidation, and what should never be cached at the edge.