Availability, reliability and durability
corebeginnerThree related but distinct guarantees: availability is the percentage of time a service can be reached and used; reliability is the probability it behaves correctly while it runs; durability is the probability that data already stored stays intact, even during downtime.
Think of it as
A vending machine that is plugged in and displaying its menu is "available" — you can reach it. If it sometimes gives you the wrong snack, it is available but not reliable. If it loses track of how much money you put in even after a power outage, that is a durability failure, not an availability one — the machine can be back online (available) with no memory of your transaction (not durable). The three answer different questions: can I reach it, does it work correctly, and is what I stored still there.
What we're doing: Show a single incident scenario touching all three guarantees differently, to make the distinction concrete.
- 3
- The 90-second outage is purely an availability number — the service could not be reached.
- 6
- Stale reads during the failover are a reliability problem — the system was reachable but gave wrong answers.
- 10
- Because the write was already replicated, no committed data was lost — durability held even though availability and reliability both took a hit.
Why this works: The same incident can score very differently on each axis. Conflating them leads to the wrong fix — adding more replicas improves durability, not necessarily availability during a failover, and does nothing for a reliability bug in the application code.
Using "highly available" to mean "never loses data"
Wrong
Better
What you see: A team assumes high availability implies data safety, then loses data in an incident where the service stayed reachable the whole time but wrote to a single, unreplicated disk that failed.
Why: Availability says nothing about what happens to data on disk — a system can be up 99.99% of the time and still lose everything on its first disk failure if durability was never separately engineered.
- Availability (took a hit)
- Service returns errors for 90 seconds
- A replica must be promoted first
- "Can I reach it?" — no, for 90s
- Durability (held)
- The write was already replicated to 2 nodes
- No committed data was lost
- "Is it still there?" — yes
The three guarantees
Together
Remember: Availability = can you reach it; reliability = does it work correctly; durability = is stored data preserved. Different questions, different failure modes.
See also: uptime nines · redundancy toolkit

