Latency SLO or SLA¶
A service-level policy — instantiates Coupling Latency and Time-Delay Effects
Commits a coupled interaction to an explicit delay bound with a stated consequence, and watches an error budget, so latency creep is caught and escalated instead of quietly tolerated.
A Latency SLO or SLA is a standing commitment that a coupled interaction will complete within a stated delay for a stated fraction of the time — an internal objective (SLO) or a contractual agreement (SLA) with a consequence attached. What makes it this mechanism and not its siblings is that it is a promise with teeth pointed at one interface: it doesn't measure where time goes or divide a budget across stages; it fixes a threshold on one coupling's end-to-end delay, tracks adherence continuously, and defines what happens when the promise is missed. Its defining move is the error budget — a permitted quantity of breaches — which converts "fast enough" into an accountable, spendable number.
Example¶
A logistics platform sells merchants a next-day delivery promise: at least 98% of orders placed before 6 pm arrive by end of the following day. That is the SLA — a delay bound (one day), a target fraction (98%), and a consequence (fee credits when missed). Operationally it runs as an error budget: 2% of orders may miss without penalty, so the fulfilment team can see, week by week, how much of that budget they've spent. Early in the quarter a regional carrier starts slipping; the burn rate on the error budget climbs well before the 2% ceiling is hit, and that trend — not a single late package — is what triggers escalation to find a second carrier. The SLA doesn't tell anyone why the carrier is slow; it makes the slowness cost something and surfaces the drift while there's still budget left to react.
How it works¶
- Commit to a bound and a fraction. State the delay ceiling and the proportion of interactions that must meet it (e.g., "p99 under 300 ms"); a bare average is not an SLO because it hides the tail the coupling actually suffers.
- Attach a consequence. An SLO's consequence is internal (halt feature work, escalate); an SLA's is external (credits, penalties). The consequence is what makes the threshold load-bearing rather than aspirational.
- Run it as an error budget. Track breaches against the permitted allowance; the burn rate of that budget is a leading indicator that fires before the ceiling does.
- Escalate on drift, not just on breach. Rising burn rate triggers action while there is still slack, which is the point of monitoring the budget rather than only the final tally.
Tuning parameters¶
- Target percentile — average, p95, p99, or max. Higher percentiles protect the tail the coupling really feels but are far harder and costlier to hold.
- Budget size — how many breaches are permitted. A generous budget tolerates variance and reduces false alarms; a tight one signals sooner but risks crying wolf on normal noise.
- Burn-rate alerting — how fast the budget must be spent before escalation. Aggressive catches drift early but pages on transients; lax waits for confirmation but reacts late.
- Consequence strength — advisory, work-freezing, or financially penalized. Stronger consequences focus attention but can incentivize gaming the metric rather than fixing the latency.
When it helps, and when it misleads¶
Its strength is that it makes a delay bound accountable and observed: the coupling now has an agreed ceiling, a consequence for breaching it, and a burn-rate signal that surfaces creeping latency before it becomes an incident. The error-budget framing is what lets a team spend reliability deliberately instead of chasing an impossible zero.[1]
Its failure modes are the metric's. A single-percentile SLO is easily gamed — teams optimize exactly the tracked statistic and let everything just outside it rot. A bound with a weak or unenforced consequence is theatre; a bound set without knowing what the coupling can achieve is either always-breached or never-binding. And an SLA can create the perverse incentive to reject hard requests to protect the number. The discipline is to choose the percentile from what the downstream unit actually experiences, make the consequence real, and revisit the target against measured latency rather than defending a number that has drifted out of touch with the system.
How it implements the components¶
The SLO/SLA fills the two commitment-and-watch components:
delay_bounded_escalation_threshold— the objective is a delay bound whose breach carries a defined consequence and escalation path.latency_drift_monitor— the error budget and its burn rate are a continuous monitor that flags latency trending toward the bound before it crosses.
It does not localize *where the latency accrues (latency_profile) — that's the Decision Latency Scorecard — and it does not divide the end-to-end bound into owned per-stage allowances (timing_chain_map), which is the Delay Budget Table's job.*
Related¶
- Instantiates: Coupling Latency and Time-Delay Effects — it turns a tolerable delay into an accountable, monitored commitment on the interface.
- Consumes: Decision Latency Scorecard — measured latency is what a defensible target is set from and checked against.
- Sibling mechanisms: Delay Budget Table · Decision Latency Scorecard · Stale Data Revalidation Gate · Rate Limit and Cooldown Rule
Notes¶
An SLO/SLA governs the outcome delay of one coupling; a Delay Budget Table governs the internal decomposition of that delay. They pair naturally — the SLA sets the total the budget must fit inside — and confusing them is common: an SLA with no budget behind it has a promise no one has apportioned, and a budget with no SLA has allowances no external party has agreed to.
References¶
[1] An error budget is the site-reliability-engineering practice of treating an SLO's permitted failure fraction as a resource to be spent deliberately; its burn rate is the standard leading indicator of drift. ↩