# Where a read comes from

Reads inside an action, policy and authentication always read the store,
inside the action's transaction, so they are current.

A display read is a query a route runs directly to show data
([What a route runs](what-a-route-runs.md)). It may be served from
the cache its query file declares ([Caches](caches.md)). A client
still sees its own writes: every write response carries a revision, and a
request carrying a revision newer than the cache skips it. The build lists
every query call with where it reads from.

| Call | Reads from |
|---|---|
| Inside an action, policy or authentication | the store, in the action's transaction |
| A route's display read, after this client wrote | the store |
| A route's display read, otherwise | the query's cache when declared, up to its `keep:` |

```jadpo
route GET /todos {
    input: ListTodos
    output: Page<TodoView>
    run: todos_for_owner(current_principal.user_id, input)
}
```

Caches aren't built yet: they need the Redis driver.
