Scalability
Scalability is a system's ability to handle more work by adding resources, without a fundamental redesign. A scalable system doesn't have to be fast at every size — it has to keep working, at an acceptable cost, as load grows.
Availability
Availability is the percentage of time a system is able to successfully respond to requests. If a service is "available," it doesn't mean it's fast or correct — only that it's up and answering. It's usually expressed as a percentage of uptime over a year, using a shorthand people call "the nines":
Reliability
Reliability is the probability that a system performs its intended function correctly over a given period of time, without failing. Where availability asks "is it up right now?", reliability asks a stricter question: "does it keep doing the right thing, consistently, for as long as it's expected to?"
Single Point of Failure (SPOF)
A single point of failure is any one component in a system whose failure causes the whole system (or a significant part of it) to go down. It's one of the simplest and most durable ideas in system design: if there's exactly one of something critical, that something is a ceiling on how available and reliable your system can ever be, no matter how well everything else is built.
Latency vs Throughput vs Bandwidth
These three words get used loosely in everyday conversation, but in a system design interview they mean three distinct, measurable things — and conflating them is one of the fastest ways to sound imprecise.
Consistent Hashing
Consistent hashing is a technique for assigning keys to nodes (servers, cache instances, shards) in a way that survives adding or removing nodes without reshuffling almost everything. It shows up constantly in system design interviews because it solves a very concrete, very common problem: how do you distribute data or requests across a changing set of machines, without a full rebalance every time the set changes?
CAP Theorem
The CAP theorem, first proposed by Eric Brewer in 2000 and later formally proven, states that a distributed data system can only guarantee two out of the following three properties at the same time:
Failover
Failover is the process of automatically switching to a redundant or standby component when the active one fails. It's the mechanism that turns "we have a backup" into "the backup is actually helping" — redundancy without failover is just a spare part sitting on a shelf, useless until someone notices the failure and manually swaps it in.
Fault Tolerance
Fault tolerance is a system's ability to keep operating correctly even when some of its components fail. Note the phrasing carefully: it's not about preventing failures — at any meaningful scale, you cannot prevent hardware from dying, networks from dropping packets, or processes from crashing. Fault tolerance is about surviving failures that are assumed to be inevitable, so they don't turn into outages.