Data models
Context is the flagship; the rest make the store broadly useful.
Each model is a model-aware, time-indexed primitive the engine understands directly — not a table you assemble by hand. Open a detail page for depth, or build your own when a workload needs one.
The model set
One flagship, composed from a handful of temporal primitives.
Every model stores per-entity state indexed by time, so the same reads — tails, windows, filters, and replay — work across all of them. Context Management is the model most teams reach for; underneath, it composes the supporting primitives, and each of those is useful on its own.
Each node is a first-class object in the engine; Context stitches them into agent memory.
At a glance
What each model stores, and when to reach for it.
| Model | What it stores | Example use |
|---|---|---|
| Context Management | Session memory, tool traces, evidence, summaries, safety counters | Replayable memory for an AI agent |
| Long Sequence Feature | Long, ordered per-entity event history | Last N interactions for a ranker or agent |
| Aggregated Feature | Filtered sum/min/max/count & grouped rollups over windows | Fresh risk or campaign-spend features |
| Control State | Bucketed counters, frequency caps, velocity checks | Rate limits and ad frequency caps |
| Distinct Set | Unique devices, merchants, IPs, sessions in a window | Fraud fan-out and abuse detection |
| Profile | Latest entity facts colocated with temporal history | Stable identity context beside the timeline |
Extensibility
Build your own data model for your workload.
TemporalStore models are model-aware objects with explicit commands over entity-local state. Adding a new one is a small, testable recipe — not a fork of the engine. Enterprise backends like MatrixObject Enterprise and MatrixKV Enterprise plug in underneath without changing the model code.
Define the object
Describe the per-entity state and its encoding — what lives in memory, dumps into pages, and recovers from WAL.
Declare commands
Add the model-aware write and read commands — append, increment, window, distinct — the engine runs at the shard.
Wire indexes & dumps
Register bucket and page bookkeeping plus any secondary indexes so dirty state persists and reloads correctly.
Add tests & benchmarks
Cover correctness, reload and replay, and a workload benchmark — then it is a first-class model in the store.