The five trade-offs every senior interview runs on.
Senior system-design rounds are conducted in trade-off language. Before any architecture sketch, you should be able to use these six words precisely: performance, scalability, latency, throughput, availability, consistency. The five pages below cover them in depth — each one a long-form read with a worked example or an interactive component, and links into the rest of Semicolony where the next layer of detail lives.
Performance vs scalability
Performance is how fast one request gets through. Scalability is how the system holds up when you add a hundred more. They look the same when load is low and diverge sharply once you hit a bottleneck.
Worked example: tuned single-box service at 50 µs vs sharded service at 200 µs.
ReadLatency vs throughput
Latency is the time one operation takes. Throughput is how many you can do per second. Little's Law ties them: concurrency = throughput × latency. Pushing one almost always costs the other.
Live worked example: tune batch size on a database write and watch both numbers move.
ReadAvailability vs consistency
You can't have both during a network partition. CAP says you pick one side. The harder part is being able to say which side your product needs, and why.
Concrete scenarios from Stripe, Discord, Etsy, and Spanner.
ReadConsistency patterns
Weak, eventual, causal, strong, linearisable. Five bands every database picks from. Postgres, DynamoDB, Spanner, Cassandra, Redis — each lives in a different one.
Compare seven real systems side by side.
ReadAvailability patterns
Failover (cold, warm, hot), replication shapes, the math behind "five nines." Plus the counterintuitive bit: past a point, more redundancy means less availability.
Interactive availability calculator + redundancy cost curve.
ReadOpen the full System Design Roadmap
15 stages from the trade-off vocabulary above through to 19 worked problems. Interactive architecture diagram, every topic linked to a deep dive.
Open the roadmap