Architecture
How the engine is put together — from a row arriving at a protocol door to a streamed query result. Read these top-down to get the full mental model, or jump to a single plane.
In this section
- How It Works — the journey of one row, from ingest to query (start here)
- Overview — the five planes, deployment profiles, and design invariants
- Data Flow — the eager/lazy ingest split and the read path
- SmartIngest — deterministic identity detection and the honest boundary with general NER
- Jobs & Triggers — every background work item is a typed Job; what they are and what fires them
- Data Model — ontology primitives, the bi-temporal row shape, and canonical identifier types
- Storage Engine — object-store native, WAL, Parquet segments, three-tier cache, tamper-evident manifests
- Query Engine — parse, plan, cost-based optimize, streaming execute
- Crate Map — the Rust workspace laid out, crate by crate
See also: Concepts for the why behind each plane, and Deployment for running it in production.