# Page Data: The runtime store

> What page data becomes once the page runs.

Glider documentation · Data · Web page: https://cgglider.com/docs/page-data/store/

Sections of this page: [Editing data](https://cgglider.com/docs/page-data.md) · [Paths](https://cgglider.com/docs/page-data/paths.md) · [The runtime store](https://cgglider.com/docs/page-data/store.md) · [Reserved paths](https://cgglider.com/docs/page-data/reserved.md) · [Keys view](https://cgglider.com/docs/page-data/keys-panel.md)

At runtime there is one logical keyspace, presented as a view over two underlying dictionaries — data and memory. Reads are data-wins: a path present in data shadows the same path in memory. Every write goes to data.

- Watching a path subscribes to both dictionaries and de-duplicates, so a handler fires at most once per real change.
- A stale memory change for a path shadowed by data produces no merged change and is swallowed.
- Consumers never need to know which bucket a path lives in; the split survives only for persistence and the SSE frames.

> **One writer per path:** Units declare the paths they write, and the unit check refuses two writers on one path. If a value flickers, look for a second writer before suspecting the renderer.
