Entity Inspector
The Entity Inspector is the control plane tool for reading entity state and walking ledger history. Use it when debugging wrong field values, verifying a commit landed, or comparing before/after snapshots — without writing queries against internal stores.
Where to find it
Platform → Application → Operate → Entities
Two levels of inspection:
| Surface | Best for |
|---|---|
| Entities list | Search and filter across many entities; quick drawer preview |
| Deep Entity Viewer | Full-page timeline, replay scrubber, diff, and rebuild for one entity |
Open the Deep Entity Viewer from the drawer (Open Deep Entity Viewer) or navigate to …/operate/entities/{stream}/{entityId}.
The Decision Timeline (Decision Logs in the nav) complements the inspector — same entity, focused on rule-level forensics. Links between the two are built into the UI.
Browsing entities
The Entities page lists materialized snapshots for the selected fork (default main).
Filter by:
- Stream — entity type from your Product DSL (
user_stream,ticket_stream, etc.) - Entity ID prefix — typeahead search by ID
- Field value — search on a JSON path in entity state (paths come from your stream schema in the compiled IR)
The table shows last event type, last intent, cursor watermark, and snapshot version. Click a row to open the Entity Drawer.
For query-shaped browsing, switch to query API mode when you need rows from a named query instead of raw entity snapshots.
Entity Drawer (quick inspect)
The drawer opens on a single entity with tabs:
| Tab | What you see |
|---|---|
| State | Current snapshot JSON and parsed fields |
| Timeline | Recent commits — intent type, mutations, emitted events |
| Decisions | Summary of decision-route activity per intent |
| Field history | How one field changed over time (cursor, event, value) |
From the drawer, jump to Decision Timeline or the Deep Entity Viewer for the same entity.
Deep Entity Viewer
The full inspector layout:
Live vs replay mode
| Mode | Snapshot source |
|---|---|
| Live | Current materialized snapshot |
| Replay | State recomputed at the selected cursor from ledger history |
Toggle replay mode and drag the scrubber along the cursor axis. The snapshot panel updates to show field values as they were at that commit — useful for “what did we store right after checkout?”
Field metadata
With field metadata enabled, each field shows last cursor and last event type that wrote it. Click a field to trace when it changed without scanning the full timeline.
State diff
Pick two cursors and open Compare to see a field-level diff — what was added, changed, or removed between commits.
Rebuild
Rebuild re-applies the full ledger sequence for this entity and refreshes the snapshot. Use after incidents or rule fixes. See Replay.
Event detail
Select a timeline row to inspect the commit envelope: patch operations, emits, metadata, and intent outcome (committed / rejected).
How it connects to debugging
| Question | Start here |
|---|---|
| What is the entity state right now? | Entities → State (live mode) |
| What was state at cursor N? | Deep Entity Viewer → replay scrubber |
| What commits touched this entity? | Timeline tab or ledger events column |
| Why did a field get this value? | Field history → Decision Timeline for that cursor |
| Snapshot wrong vs ledger? | Rebuild, then compare live vs replay |
All inspector data is scoped by platform, application, and fork — same isolation as runtime execution.
SaaS API (for integrations)
The control plane proxies the runtime Entity Browser and Ledger services. Conceptual operations (not curl recipes):
| Operation | Purpose |
|---|---|
| List entities | Paginated browse with stream, prefix, and field filters |
| Get state | Current snapshot for stream + entity + fork |
| Get state with field meta | Snapshot plus per-field last cursor / event type |
| Get state at cursor | Point-in-time state for replay scrubber |
| Diff | Compare state at two cursors |
| Timeline | Recent commit preview for an entity |
| Decisions | Decision-route summaries for the entity |
| Field history | Value changes for one JSON path |
| Rebuild | Rebuild snapshot from ledger |
Authenticated via Clerk session in the UI; server integrations use the same platform APIs with appropriate auth.
Common workflows
Support ticket: “My order shows wrong status”
- Find the order entity in Entities.
- Open Deep Entity Viewer → replay to the cursor after the status-changing intent.
- Open Decision Timeline for the same entity at that cursor — confirm which rules ran.
- If snapshot is stale, Rebuild and re-check live mode.
Incident: rule bug shipped, snapshots corrupted
- Deploy fixed release to the fork.
- Rebuild affected entities from Entities or bulk ops.
- Verify with replay scrubber at known good cursors.
Exploratory: what-if on historical state
- Note cursor on Decision Timeline.
- Branch from cursor to a non-production fork (see Replay).
- Submit test intents on the branch without touching
main.
See also
- Replay — rebuild, branch, projection replay
- Timeline — rule-level trace
- Ledger Events — commits and intent outcomes
- Debugging overview — full forensics workflow