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

Terminology

Eidetica uses two naming schemes:

Internal Data Structures

Trees and Subtrees. These align with the names used inside of an Entry:

  • TreeNode: Main tree node within an Entry (root CID, parent references, metadata)
  • SubTreeNode: Named subtree nodes within an Entry (name, parents, data payload)
  • ID: A wrapper around a CID (Content Identifier). Entries are serialized to DAG-CBOR and hashed to produce their CID. The string representation uses multibase base32lower encoding (bafyr4i...).

Use these when discussing Entry internals, Merkle-DAG structure, or serialized data format.

User-Facing Abstractions

  • Database: Collection of entries with shared authentication and history
  • Store: Typed data access (DocStore, Table, YDoc) operating on named subtrees
  • Projection: A Store-defined representation of current CRDT state. The default is one opaque whole-state record.
  • Namespace: A backend-owned set of ordered opaque Store-state records for one database, Store, projection, source, and trust scope.
  • Derived namespace: Immutable disposable state materialized from historical Entries.
  • Authoritative namespace: Durable current Store state that cache clearing cannot select.
  • Staging namespace: Unpublished records used while building a complete namespace; readers cannot resolve it.

Use these in public APIs, user documentation, and error messages.

A historical Database is an abstraction over a Tree, and Stores are an abstraction over the Subtrees within. Historical reads may resolve a derived Store-state projection that can be cleared and rebuilt from Entries.