ContentsThe library

Running a Service That Stays Up

A Chain of Reliable Parts Is Not Reliable

Last timeWhere the Measurement Is Taken

Availabilities multiply along a chain, so a service standing on ten dependencies cannot be more reliable than their product, however good its own code is.

A service is usually written as though it were one thing. It is not. It is the

last link in a chain, and the chain has an arithmetic that does not care how

carefully the last link was written.

FIG 1A chain where every part is required
the availability of one part, when all the parts are alike
how many parts the request passes through
This is multiplication because the request needs all of them, and multiplication of numbers below one always goes down. Every dependency added to a request is a subtraction from the reliability of everything above it, and nothing about the quality of the new dependency changes that direction.
FIG 2What a chain of three-nines parts can promise
0.920.950.970.991.021.015.830.545.360.0number of parts in the chain
each part at three nineseach part at four nines
At thirty dependencies the upper curve is still near 99.7 percent and the lower one has fallen to about 97. The lesson is not that dependencies are bad, it is that the count of them is a reliability decision being made by whoever adds the next one, usually without noticing.

What a second copy buys

Redundancy works on the failure rather than on the availability, and that is why

it is powerful.

FIG 3Two independent copies, either of which is enough
the availability of the pair, which is everything except the case where both are down
the probability that both copies are unavailable at the same moment, each being down with probability one minus its availability
A failure probability of one in a thousand becomes one in a million. No amount of careful coding buys three orders of magnitude; a second copy does it in one step. This is the single highest-leverage intervention available, and everything in the next section is about why it underdelivers.

The word that does all the work

The squaring above is a consequence of one assumption, stated quietly:

independence. The two copies must fail for unrelated reasons.

The lesson stops here

4 more paragraphs to go

You have read the opening. The rest of the argument, the problems that check whether it landed, and the lines worth keeping at the end all come with a plan.

The first lesson of every course in the library reads the whole way through, free, so you can see exactly what the rest of them are.

See the planThe contents

This is the reading half

Starting the course gives you your own copy of it. Every idea on every page has problems standing under it, marked with a reason rather than a tick, and any sentence you do not believe can be opened and argued with. None of that can happen on a page nobody owns.

The contents

The rest of this course

  1. 01Available to Whom, Exactly
  2. 02The Gap Between Your Target and Perfection Is a Resourceopening only
  3. 03The Average Is the Enemyopening only
  4. 04A Chain of Reliable Parts Is Not Reliableyou are here
  5. 05Nothing Degrades Gracefullyopening only
  6. 06The Service Was Fine Until Somebody Changed Itopening only
  7. 07The Helpful Client That Finishes the Jobopening only
  8. 08A Pager That Everyone Trustsopening only

Read alongside