Skip to content

Design decisions

Every significant decision is recorded as an ADR in docs/adr/. An ADR states the goal metric, the options considered, the measurement that discriminated between them, and explicit reopen triggers — the future conditions under which the decision should be revisited. “We preferred X” without a number is not a completed decision.

ADR Decision Discriminating evidence
0001 Native pure-Rust COPY, not ADBC, for the v1 sink Static binary requirement; confirmed by S1.3: 3.1× the psql \copy baseline
0002 WASM transforms deferred from v1; SQL/expressions first Ten-minute onboarding goal; WASM remains the committed extension mechanism
0003 SQLite (WAL) for the v1 inference ledger S1.1: zero lost results across crashes, µs-level overhead
0004 Windows x86_64 is a blocking tier-1 CI target Product decision; identical gates on all four targets
0005 Local-first, four-layer testing (mocks → protocol stubs → local services → weekly cloud) PR gates run with zero cloud access and zero credentials

The project maintains a controlled vocabulary — one term per concept (work key, recorded result, semantic transform, reconciliation, …) used consistently across code, docs, and issues, with forbidden synonyms listed. It keeps long-lived discussions and the eventual paper precise.