ObeliskDB docs Home Whitepaper Console

Architecture

ObeliskDB separates two concerns that most systems conflate: the reasoning an agent does and the truth a platform guarantees. The whole design follows from keeping them apart.

Two planes

The reasoning plane is the model, its context window, and the harness driving its tool-use loop. It is non-deterministic, stateless between sessions except for what it is fed, and steerable by anyone who can influence its input. It is meant to be interchangeable — bring any model.

The truth plane is the durable store: the data, its schema, its version history, and the executor that admits or refuses each statement. It is persistent, authoritative, and the one component every agent action must pass through to have any effect.

Between them is a narrow interface: statements going down, results coming back. Every guarantee ObeliskDB offers is a property of what happens at that interface — which statements are admitted, how they are rewritten, what is recorded, what is refused. Because enforcement lives in the truth plane, it holds no matter which model is attached, and no matter what a poisoned data cell tells that model to do. See The guarantees.

The stack

ObeliskDB is single-node by design. Each layer is hand-built except the execution kernel.

How a statement flows

  1. 1. Parse the SQL (Snowflake dialect). Unparseable DDL is routed by a small command layer.
  2. 2. Authorize. The session's role must be permitted; masking and row policies attached to referenced objects are resolved.
  3. 3. Rewrite. Table references become scans over the surviving micro-partitions (zone-map pruning drops partitions that cannot match). Policies are injected into the scan subquery. Time travel resolves the target version.
  4. 4. Execute on DuckDB.
  5. 5. Record. The statement, its accessed objects and their versions, its partition-scan profile, and its estimated credits are written to history — the raw material for receipts and reproducibility.

Compatibility as a feature

ObeliskDB speaks the Snowflake SQL dialect and ships drop-in Snowpark and connector APIs. That is a compatibility surface, not an identity — it means existing SQL and Python port with an import change, while the platform underneath is something different: a data plane built for agents.

Interfaces

The same governed engine is reachable four ways, and each inherits the same guarantees: