Substrate
The precise, durable form of the Timeline and System Shape model introduced in How it works.
The Substrate is what other parts of Lamarck are allowed to depend on. Runtimes and interfaces may be replaced; these identities and durability rules must remain legible.
Product concepts, technical forms
| Product concept | Technical contract |
|---|---|
| Timeline | An ordered view over append-only D0 Events and their stable provenance. |
| Source | A stable configured integration identity created by a Connector and injected into captured Events. |
| App | A stable package identity whose workloads access the Substrate through the System API. |
| Document | A D1 record with stable path identity and bidirectional Markdown materialization. |
| Table | An ordinary D2 SQLite table with explicit schema lifecycle and mutation authority. |
Three durable layers
Append-only Events preserve observations, meaningful system activity, and mutation audit.
Mutable Markdown Documents preserve human-readable current state.
Mutable SQLite Tables preserve structured current state and derived read models.
These layers answer different questions. D0 is not deleted after derivation; D1 and D2 may evolve while their meaningful changes remain observable.
What is outside the Substrate
Not every persistent record is personal data. Schedules, process runs, trust approvals, encrypted credentials, checkpoints, and runtime warnings are control-plane state in system.db. They operate the Substrate but are not Timeline Events, Documents, or Tables.
If replacing a runtime should not alter the user's accumulated history or current personal state, that runtime record does not belong in the Substrate.
Physical representation
The Workspace documents the inspectable filesystem boundary: App and Connector packages, the pages/ Markdown tree, and Host-owned .lamarck/ state. Data contracts define the two-database split, D0/D1 schemas, D2 policy, blobs, and audit.