SLA vs SLO vs SLI
The SLI is what you measure, the SLO is your target for it, the SLA is the promise with consequences — and the error budget turns all three into release decisions.
Three acronyms that get used interchangeably and shouldn’t be. Once they click, they turn reliability from a feeling into a decision you can make together.
The three
- SLI — Service Level Indicator. What you actually measure. “The proportion of requests served in under 300 ms.”
- SLO — Service Level Objective. Your internal target for that indicator. “99.9% of requests under 300 ms, over a rolling 30 days.”
- SLA — Service Level Agreement. The external promise, with consequences (usually service credits) if you miss it. “99.5% availability per month, or the customer gets money back.”
The SLA is normally looser than the SLO. The SLO is your early warning; you want to know you’re slipping long before you owe anyone anything.
Error budgets
The clever part is the error budget: 1 − SLO. A 99.9% SLO means 0.1% of requests are allowed to fail. That’s a budget, and you get to spend it:
- Budget left? Ship faster, run experiments, do the risky migration.
- Budget gone? Slow down, freeze risky changes and spend the time on reliability.
It ends the eternal argument between “move fast” and “keep it stable”, because both sides agreed the number in advance.
Back-of-envelope numbers
| SLO | Downtime allowed per 30 days |
|---|---|
| 99% | ~7.2 hours |
| 99.9% | ~43 minutes |
| 99.99% | ~4.3 minutes |
Every extra nine costs roughly an order of magnitude more effort. Most user-facing products don’t need four.
Choosing good SLIs
Pick indicators users would notice: availability, latency (percentiles, not averages), correctness and freshness. For a streaming or real-time UI, freshness is often the one that matters — a price that’s two seconds stale is technically “available” and practically wrong.
In practice
Working on video apps for broadcasters, I saw how much weight sits on a handful of user-felt indicators like start-up time and rebuffering: a CDN can be “up” while viewers stare at a spinner. On platform work since, the most useful conversations I’ve had with stakeholders started with “what number would tell us this is working for users?” — and the answer became an SLI. The plumbing behind those numbers is Observability.
- #sre
- #reliability
- #slo
- #error-budgets
- #observability
↩ Linked from (3)
- DORA MetricsGrowing
Later State of DevOps reports add reliability, meaning whether you're meeting your availability and performance goals. That links straight to SLOs.
- ObservabilityGrowing
…a log index, a trace backend. Alert on what users feel — not on CPU at 80%, but on the indicators behind your SLOs.
Pair Programming · SLA vs SLO vs SLI · React Testing Strategy · Architecture Decision Records
↪ Links to (1)
Related by topic
- Growingcase study
Rolling Out an API Gateway
Platform engineering - Evergreen
Architecture Decision Records
Career - Growingmetaphor
Balance Is a Control Loop
Calisthenics Lab - Growingcase study
Building a Low-Code BPMN Workflow Platform
Frontend craft