Free preview

Reliability: MTBF, MTTR, and Why It Isn't Availability

Why this matters: availability and reliability get used interchangeably in casual conversation and mean genuinely different things. A system can be highly available and unreliable, or perfectly reliable and completely unavailable. Knowing which one you're being asked for changes what you build.

Key takeaway

Reliability is the probability that a service performs its intended functions for a specified period — it measures performance consistency under varying operating conditions. Availability asks "can I reach it?"; reliability asks "does it do the right thing when I do?"

Measuring reliability

Two metrics do most of the work: mean time between failures (MTBF) and mean time to repair (MTTR).

MTBF = (Total Elapsed Time - Sum of Downtime) / Total Number of Failures

MTTR = Total Maintenance Time / Total Number of Repairs

System designers strive for a high MTBF and a low MTTR — fail rarely, and recover fast when you do.

MetricQuestion it answersImprove it byDirection you want
MTBFHow long between failures?Better testing, redundancy, quality hardware, load sheddingHigher
MTTRHow long to recover?Automated failover, good runbooks, fast rollback, observabilityLower
MTTFHow long until it dies for good?Component quality; used for things you replace, not repairHigher

Reliability and availability

These are key metrics for measuring compliance with agreed service level objectives (SLOs), and they capture different things:

  • Availability is driven by time loss — how much of the period the service was unreachable.
  • Reliability is driven by the frequency and impact of failures — how often it misbehaves and how badly.

Together they let stakeholders assess the overall health of a service.

Mathematically, availability (A) depends on reliability (R) as one of several factors. But because R can change independently, all four combinations are real:

CombinationBehaviorWhat it feels like
Low A, low RFrequent failures, slow recoveryBroken. Users leave.
Low A, high RRare failures, slow recoveryWorks well, then vanishes for hours. A batch system with no failover.
High A, low RFrequent failures, fast recoveryAlways reachable, often wrong. Retries mask it — until they don't.
High A, high RRare failures, fast recoveryThe goal.

The interesting quadrant is high A, low R. A system that is always reachable but frequently returns wrong or degraded answers scores beautifully on an uptime dashboard and is actively harmful to users — this is Chapter 1's gray failure wearing a green badge.

The distinction, stated cleanly

Interviewers ask this directly. The crisp version:

Reliability measures how well a system performs its intended operations — its functional correctness over time. We measure it with averages: mean time to failure, mean time to repair.

Availability measures the percentage of time a system accepts requests and responds to clients.

Two examples that make the gap concrete:

Example 1 — they diverge numerically. A system may be 90% available but only 80% reliable: reachable most of the time, correct less often than that.

Example 2 — they can invert completely. Treat everything inside a data center as "the system." A network failure cuts it off: no outside traffic in, no inside traffic out. Instantaneous availability is zero — no client can reach the service. Instantaneous reliability is 100% — every system inside is functioning perfectly. Nothing is broken; nothing is reachable.

Both metrics are used, in different contexts. Storage vendors quote MTTF for disks. Most online services state uptime in their SLAs — EC2 virtual machines, for instance, commit to 99.95%.

Making it actionable

Reliability improves through the same mechanisms Chapter 1 introduced, now with a metric attached:

TechniqueMoves which metricHow
Redundancy + failoverMTTR downTraffic shifts to a healthy replica without human involvement
Health checks + outlier ejectionMTTR downBad nodes leave the pool before users notice
Canary / staged deploysMTBF upA bad release reaches 1% of traffic, not 100%
Idempotency + retriesReliability upTransient faults stop becoming user-visible errors
Load shedding + rate limitsMTBF upOverload degrades gracefully instead of collapsing
Fast rollbackMTTR downRecovery is one command, not a debugging session

Key takeaway

At scale, failure is not an event — it is a background rate. Design assuming components fail constantly, and optimize for how fast you notice and recover rather than for a fantasy of never failing.

Interview signal by level

LevelWhat a strong answer sounds like
L4Uses the terms, roughly interchangeably.
L5Separates them: "availability is uptime, reliability is correctness — MTBF and MTTR are how we measure the second one."
Staff+Uses the relationship: "availability is MTBF over MTBF plus MTTR, and MTTR is the cheaper lever — I'd spend on automated failover and fast rollback before trying to eliminate failures. Also worth separating durability: we can tolerate being unreachable, we cannot tolerate losing the write."

Next: the property that determines your MTTR long before an incident starts.

Enjoying the preview?

Create a free account to unlock the rest of this course, the in-browser judge, and live AI mock interviews.

Sign up free to continue