Demo · 30 seconds

What was true on March 5?

Drag the scrubber. The database reconstructs what was known at that exact instant — not what's known today, not the policy after the change. This is bitemporal AT RECORDED in one Cypher line. The query never changes; only the date does.

graph: insurance_demo · replay
// Same query every time. Only the timestamp changes.
 
MATCH (p:Policy) AT RECORDED '2026-03-05T10:00:00Z'
WHERE p.status = 'active'
RETURN count(p) → 412 policy v1 — pre-update
Recorded time 2026-03-05 · 10:00 UTC
policy update · Apr 2
2026-01-12
Genesis — system bootstrap
2026-03-05
A decision was made here
2026-04-01
Last day of policy v1
2026-04-02
Policy v2 took effect
2026-06-01
Two months under v2
Why this matters

In InvariantDB, "what did we know on March 5?" is one Cypher clause.

AT RECORDED reads the graph as it was recorded at a past moment. You do not build a separate temporal layer, a snapshot store, or an event-log replay.

The query never changes

Same MATCH (p:Policy) RETURN count(p). Only the AT RECORDED timestamp moves. The engine handles the rest.

No future-info leak

The result at March 5 contains nothing that was learned after March 5. Train agents on past decisions without leaking future data.

Hash-chained & verifiable

Each committed node and relationship write records the SHA-256 hash of the previous record. GET /graphs/{name}/audit/verify re-hashes the history log from the first record and reports the first broken record, if any. The log is not signed, so the check does not detect a rewrite of the whole log, or removal of the most recent records, by someone with write access to the server.

Crypto-shred (in development)

Per-subject encryption keys and key destruction are in development. Contact us before relying on them for erasure requests.