Query execution and orchestration. The engine consumes a compiled rql plan, drives the virtual machine over the
storage tier, applies policy enforcement, manages per-query session state, and produces the columnar result the
caller observes.
Above this crate sit the user-facing surfaces (the SDK, the server subsystems, the subscription/flow runtime); below it sit the storage backends, the catalog, the transaction manager, and the policy evaluator. The engine is the place where a logical query becomes an executed query: instructions are issued to storage, intermediate columns flow through transforms, side effects (writes, schema changes, test runs) are committed under transactional guarantees, and policy checks are interleaved at the points where they can decide what the caller is allowed to see or do.
Invariant: every public entry point that mutates catalog or storage state runs inside a transaction obtained from
reifydb-transaction. Bypassing the transaction layer to read or write directly from a backend defeats MVCC,
policy enforcement, and CDC capture - all of which assume the engine is the single mediator of those concerns.