Every fact immutable. Every merge conflict-free. All of it on infrastructure you own.
Updates destroy the past. Nothing tells you what changed.
Every tool keeps its own version. They diverge, then they conflict.
You trust the database because you have no choice.
Identity comes from content, so any two copies merge without conflict — by construction.
Added, never changed. History comes free.
Independent writes coexist. Replicas merge by set union.
Verify who wrote what without trusting the store — or us.
GROW-ONLY COLLECTIONS · SIGNED COMMITS
Independent signed commits coexist. Replicas combine records by set union, without a mutable head or a compare-and-set retry loop.
Publish a signed fragment, then query a collection snapshot. Replicate the records to read them on another machine.
An excerpt using a declared work schema, an existing collection,
and your signing key. Full setup in the book.
let task = entity! {
work::title: "Fix auth timeout",
work::status: "done",
};
// Publish an independent signed member.
storage.commit(workspace, &key, task)?;
let snapshot = storage.snapshot()?;
let facts: TribleSet = workspace.read(&snapshot)?;
let done = find!(
(title: Inline<_>),
pattern!(&facts, [{
work::status: "done",
work::title: ?title,
}])
);
Every fix layered on a broken foundation becomes its own debt. So trust, history and portability are properties of the data — not features bolted on after.
A name comes from content, not an authority. Merge with zero coordination.
Never take the store's word for it — or ours. Check the signatures.
Infrastructure you own. No cloud, no lock-in, no export to beg for.