Search Indexing Service  ·  View 04 of 21  ·  People and journeys

Journey — A Consumer Finds Something That Exists

Five phases, and a trough that arrives one screen after the search that looked fine.

Editable source SVG draw.io All views
Consumer mobile, 8pm Goal — Eat in forty minutes without being told no three times Trigger — Hungry, opens the app, types two words Done when — Orders the thing they searched for, first try 1 · Type two words 2 · Scan results 3 · Filter open now 4 · Tap ◆ moment of truth 5 · Order ◆ moment of truth What they do "biryani" Reads top 10 Applies filters Taps result 3 Adds to basket What answers Query service Alias → idx_v41 Pre-retrieval filter Item page, live stock Basket service How it feels Trusts it Fine Stops trusting Where it hurts Facet count ≠ results "Closed" after the tap What the design owes Freshness on response Filter before retrieval Fast lane ≤ 2 s p95 Deletion ≤ 5 s p99 Journey — A Consumer Finds Something That Exists The trough is the tap: a stale availability field is caught one screen after the search that looked fine. v 1.0 · owner Data Platform Architecture

What the trough tells the architecture

  • The failure is not ranking. It is a stale availability field, caught after the tap — which is why availability, price and open/closed are fast lane with a 2-second p95 budget.
  • The filter phase dips because post-filtering breaks facet counts and pagination: the design answer is mandatory pre-retrieval filtering, which view 20 enforces at query time.
  • Deletion has no tolerated staleness at all, because the stale answer is a thing the user cannot have under any filter.

Assumptions

  • 15,000 queries/second steady, 45,000 at the dinner-hour peak; query p95 ≤ 120 ms, p99 ≤ 250 ms.
  • A consumer who is told 'no' twice in one session stops trusting the filters for the rest of it. This is an assumption about behaviour, not a measurement.