Reference/Invariants
Invariants
These guarantees hold for every operation, every client and every file. They
are enforced by the engine, covered by the Rust test suite and by the
language-neutral cases in conformance/cases, which
every client library runs.
- Nobody knows anything without an explicit record whose holder they are. Being present at an event, being aware of someone or belonging to a group grants no knowledge.
- Canon never appears in a subjective projection. A Fact is not knowledge of that fact; a holder’s perspective contains only the holder’s own records.
- Confirmed history is never deleted. Every state change is a transition with a position and a version. Only drafts that were never promoted can be purged.
- A read at
(axis, tick, asOfVersion)never sees anything later on that axis or in version. A record whose event has no position on the axis read is visible to nobody in that read. - The engine never corrects beliefs. A belief that contradicts canon stays held; the contradiction is reported.
- The engine never infers and never applies policy. Probability, decay, distortion, trust and secrecy rules come from the client; the engine records and reports. It never runs or calls a model.
- Every write is atomic, and the same
attemptIdis applied exactly once. A replay with the same request returns the stored outcome; a different request with a usedattemptIdis aCONFLICT. - The core does no I/O.
umwelt-corereads no clock, generates no ids and spawns no threads; storage, clocks and ids are supplied to it. - A read in one timeline never sees another timeline’s rows, except its
ancestors’ rows, each up to the
baseVersionof its child on the chain down to the draft. - The intent of a telling is the narrator’s knowledge. A read made on
behalf of a holder never reveals the intent with which they were told
something: it reads
unknown. The recorded intent stays available to narrator reads (record,trace,breaches).
Group knowledge follows from 1: a group knows what the group’s own records say, never the union of its members’ knowledge. Vectors used by semantic search follow from 1 and 4: they only order documents a read would see anyway.
Was this page helpful?