docs(architecture): ADR-013 — family composition, reactive boundary, sweep lease; OQ-11 resolved
- No sibling (alkstore) dependency in-core; reactivity is
deployment-layer composition above the facade — cadence stays
embedder-owned (ADR-005), with alkstore the named substrate for it;
in-crate notify/scheduler/queues/invalidation hooks are non-goals.
- Fleet sweeper lock pinned as 'named exclusive sweep lease'
semantics; shipped provider unchanged (pg advisory clause);
provider swaps are ADR-007-shaped substitution doors.
- Composition contract for downstream ADRs: co-tenancy of CAS/GC
state + reactive machinery + consumer/liveness tables on one fleet
host; no-cross-store-atomicity ruled; compensation rests on
idempotent re-puts, windowed deletes, sweeps-as-report-data.
- OQ-11 resolved (the register's one live circular hedge): engine
features pull their own driver clusters — sqlite becomes feature
'sqlite' (default-on, carries rusqlite); 'kv'/'large' tier features
retired; 'local' ungated; pg-pure builds are supported,
non-default. Deciding fact already in-tree (REQ-2/ADR-009).
- requirements.md: UC-4/REQ-5 records the composition facts
(operator record 2026-10-11, corroborated by alkstore's
consumer-inventory).
- Publish guard stated pre-code: facade ships before publish;
semver-is-contract from first publish (alkstore ADR-017 discipline).
- Amended accepted ADRs' feature wording (ADR-010 §1, ADR-011 §3/§4,
ADR-003) with supersession notes; README/overview/open-questions/
backends/store-api/gc aligned; parked index now empty.
Verification: docs-only round (no Rust surface touched); full-tree
single-value check on the feature graph and sweep-lease wording.