Critical User Journeys
How to find what to actually measure — the multi-step user task whose end-to-end success defines the service.
Overview
Measure the journey, not the call
An SLO measured at the wrong layer is worse than no SLO. A service can hit 99.99% on individual API calls while 30% of user checkouts fail, because the calls compose into a path that breaks somewhere in the middle. What matters is the end-to-end user task.
> [!IMPORTANT] The Workbook (Ch 2) defines the Critical User Journey (CUJ) as "a multi-step user task whose end-to-end success is what really matters."
CUJ examples
- E-commerce — "Complete a checkout" — "API responds 200 on individual route"
- Streaming — "Start watching this title within 5 seconds of clicking play" — "Metadata service responds"
From CUJ to SLI
Once you have the CUJ, the SLI takes the canonical good/total form: successful CUJ completions / valid CUJ attempts over a window. That ratio is the actual user-visible reliability.
The SLI menu by service type (Workbook Ch 2)
- Request-driven — Availability, latency, quality
- Pipeline — Freshness, correctness, coverage
- Storage — Durability
> [!TIP] Pick the dimension that maps to your CUJ's success criterion. A 200 OK with the wrong content is still an error if wrong content is what the user noticed.
Key concepts
- Critical User Journey (CUJ)
- A multi-step user task whose end-to-end success is what really matters. e.g. "complete a checkout," "play a video within 5s," "load a feed under 2s."
- Good / total form
- Canonical SLI shape: ratio of successful events to all valid events over a window. e.g. successful_checkout_completions / valid_checkout_attempts.
- SLI specification vs implementation
- Specification = what users care about (measurement-independent). Implementation = how you actually measure it (specification + how you collect data). Write the spec first; pick the implementation second.
- SLI menu by service type
- Request-driven: availability + latency + quality. Pipeline: freshness + correctness + coverage. Storage: durability.
- Quality SLI
- "200 OK with the wrong content" still counts as a failure if the wrong content is what the user noticed. Quality is the often-missed dimension.
When to use it
- Designing the SLI for a new service — start from the CUJ, not from the API surface
- Diagnosing an SLO that's green while users are unhappy — the SLI is at the wrong layer
- Picking which dimension to SLO (availability vs latency vs quality vs durability)
- Reviewing a service's SLO suite — does it actually cover the user's end-to-end experience?
Interview questions
- What's a Critical User Journey and why does it matter for SLO design?
- Walk me through SLI specification vs implementation.
- Quality is in the SLI menu but most teams skip it. Why does it matter?
Sign up free to read the full topic
More SRE topics
Start free on Cariara · Coding problems · System design studio