Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Engine / Module / Store factoring

The runtime decomposes into three roles:

  • Engine is the shared, immutable base — the shared schema (std + any base packages the workspace declared — including any vocabulary packages — plus the meta-axes those packages declared). The Engine is Arc<SchemaStore>, mmap-friendly, and shareable across processes and threads.
  • Module is a typed, loaded .oxbin. It owns the artifact’s structural content (symbol table, standpoint lattice, tier table, rules, queries, mutations) and is immutable for its lifetime. Many Stores may use one Module concurrently.
  • Store is the isolated execution context where facts live. One Store is one (tenant, fork) pair: it accumulates events through mutate and answers query.

A Store sees facts according to two filters: (1) tenant + fork scope — only events tagged with this Store’s tenant_id and fork_id, under the fork’s copy-on-write lineage rules (AsOf semantics — bitemporal point); (2) standpoint perspective — when a query names a standpoint, only events visible from that standpoint by the lattice ancestor relation.