ADR-0003 — Store architecture: dual-store (ADR-C)

  • Status: Seeded placeholder — not yet ratified (Story 1.6).

  • Source: docs/planning-artifacts/architecture.md §"Contested Decisions" ADR-C (#265—​271), §Build Sequencing (#427—​438); Decision Priority (D1.1, D1.3).

Context (to be decided)

The keystone storage decision, reframed to dual-store: a CRDT as merge-truth plus a derived, disposable SQLite projection — not "is the CRDT the store?". Cascades into migration, payload composition, key hierarchy, and PendingInference. Open sub-question carried to the user: CRDT history retention (full op-log forever vs compacted/snapshotted).

Decision

Pending. The Store trait will be shaped against DualStore's real constraints (async, fallible, blob-in-blob-out), with MemStore as the fake for the soul slice. rusqlite is pinned-but-unused.

Consequences

To be recorded when decided.