Error Budget
An error budget is the quantified amount of unreliability a service is allowed to have while still meeting its Service Level Objective, used to balance the pace of shipping new changes against the need for stability.
Definition
An error budget is the quantified amount of unreliability a service is allowed to have while still meeting its Service Level Objective, used to balance the pace of shipping new changes against the need for stability.
Overview
If a service has a Service Level Objective (SLO) of 99.9% availability, its error budget is the remaining 0.1% — roughly 43 minutes of allowed downtime per month. That budget can be 'spent' on anything that carries risk: rolling out a new feature, running a chaos engineering experiment, or performing planned maintenance. Framing reliability this way turns an abstract tradeoff — 'should we ship this risky change?' — into a concrete, numeric decision. Error budgets are the central mechanism that makes site reliability engineering (SRE) work as a governance model rather than just a set of good intentions. When a service has budget remaining, teams are free to move fast and take calculated risks. When the budget is exhausted, the common convention is a release freeze: new risky changes pause, and the team's priority shifts entirely to stability work — fixing root causes, improving observability, and closing gaps found during recent incident management reviews — until the budget recovers. Because the budget is tied directly to the SLO, and the SLO is normally set stricter than any external Service Level Agreement (SLA), a team burning through its error budget gets an early warning long before customers are likely to notice a real problem, giving them time to course-correct.
Key Concepts
- Directly derived from the gap between 100% reliability and the SLO target
- Provides a shared, numeric language for the tradeoff between velocity and stability
- Spent on any risky activity — deploys, migrations, experiments, planned maintenance
- Exhaustion typically triggers a release freeze and a pivot to stability work
- Tracked on rolling windows (e.g., trailing 30 days) so it recovers over time
- Makes reliability a shared, cross-team responsibility rather than solely operations' job
Use Cases
Frequently Asked Questions
From the Blog
Python Error Handling: try, except, finally Made Simple
A comprehensive guide to python error handling: try, except, finally made simple — written for learners at every level.
Read More ProgrammingPython Error Handling: try, except, finally Explained
Errors are inevitable; crashes are not. This guide explains Python's exception system from first principles: how try/except/finally works, which exceptions to catch (and which to let propagate), how to raise your own exceptions, and how to write error handling that helps debugging rather than hiding bugs.
Read More