Wave-3 decomposition: SQLite engine tasks (open/opts, seam+tx, mechanisms, integration, review gate) + core value-constructor pre-work; plan synced for waves-1-2 review + ADR-023 follow-through
This commit is contained in:
1 parent
44637eea5b
commit
1269246faf
11 files changed
+883
-5
No files matched your search
@@ -1,6 +1,6 @@
|
||||
---
|
||||
status: draft
|
||||
last_updated: 2026-10-07 (initial wave plan; waves 1–2 decomposed)
|
||||
last_updated: 2026-10-08 (waves 1–2 implemented + reviewed; ADR-023 follow-through folded into wave 3; wave 3 decomposed)
|
||||
---
|
||||
|
||||
# alkstore — Implementation plan
|
||||
@@ -32,9 +32,9 @@ parallel).
|
||||
|
||||
| Wave | Contents | Depends on | Status |
|
||||
|---|---|---|---|
|
||||
| [1](#wave-1--foundations) | Workspace scaffold; core crate (errors, value types, full trait surface); contract-suite scaffold | — | decomposed (`tasks/`) |
|
||||
| [2](#wave-2--sqlite-substrate-fork) | honker-core fork into `alkstore-sqlite/src/substrate/`: port, deltas, provenance, test floor | wave 1 (workspace scaffold only) | decomposed (`tasks/`) |
|
||||
| 3 | SQLite engine: connection architecture, re-derived queue ops on contract v1, scheduler/outbox, tx seam, SQLite backlog column | waves 1 + 2 | not yet decomposed |
|
||||
| [1](#wave-1--foundations) | Workspace scaffold; core crate (errors, value types, full trait surface); contract-suite scaffold | — | implemented + reviewed (2026-10-08) |
|
||||
| [2](#wave-2--sqlite-substrate-fork) | honker-core fork into `alkstore-sqlite/src/substrate/`: port, deltas, provenance, test floor | wave 1 (workspace scaffold only) | implemented + reviewed (2026-10-08) |
|
||||
| [3](#wave-3--sqlite-engine) | SQLite engine: connection architecture, re-derived queue ops on contract v1, scheduler/outbox, tx seam, SQLite backlog column | waves 1 + 2 | decomposed (`tasks/`) |
|
||||
| 4 | Postgres engine: schema bootstrap, pool/open, listener/forwarder, all mechanisms, tx seam, pg backlog column | wave 1 | not yet decomposed |
|
||||
| 5 | Contract suite: the cross-engine equivalence properties (core-contract.md §Verification backlog), version-stamped per ADR-017 | waves 3 + 4 | not yet decomposed |
|
||||
| 6 | Release readiness: crate docs, deployment matrix final pass, README (written last, honestly), publish prep; mem-engine and fuzzing decisions | wave 5 | not yet decomposed |
|
||||
@@ -68,6 +68,39 @@ the engine layer that maps it onto the core contract is wave 3, not
|
||||
here. Reviewability against the lineage (ADR-012 §3) is a property the
|
||||
wave-2 review gate checks explicitly.
|
||||
|
||||
## Wave 3 — SQLite engine
|
||||
|
||||
The engine layer that maps the forked substrate onto the core
|
||||
contract: the `open` constructor (connection architecture — writer
|
||||
slot, reader pool, watcher spawn — per engine-sqlite.md), the
|
||||
`spawn_blocking` seam, the full `Store`/`TxHandle`/mechanism-handle
|
||||
trait impls over the substrate's ops, the scheduler leader loop and
|
||||
outbox helper, and the engine's backlog column in the contract suite
|
||||
(the ADR-023 rows among them, factory-parameterized so wave 5 runs
|
||||
them against both engines).
|
||||
|
||||
The waves-1–2 general review
|
||||
(`docs/reviews/2026-10-08-waves-1-2-general-review.md`) and its
|
||||
resolution ([ADR-023](../architecture/decisions/023-fourth-review-round.md))
|
||||
shaped this wave's task set:
|
||||
|
||||
- **Already landed pre-decomposition** (commit `44637ee`, not wave-3
|
||||
tasks): `encode_payload` is fallible (`Result<Vec<u8>, Error::Codec>`,
|
||||
ADR-023 §1); `open_conn` drops `SQLITE_OPEN_URI` (§3, register
|
||||
D-29); the numeric-argument domain table is pinned in
|
||||
core-contract.md (§2); the 1 ms watcher default stands with the
|
||||
cadence documented in deployment.md (§4).
|
||||
- **Folded into wave 3's tasks** (the review's §7 wiring items): the
|
||||
trait-impl extent/duration guards (the contract-side domain rule,
|
||||
enforced at the engine's trait-impl entry — the `sqlite-engine-*`
|
||||
tasks carry it per mechanism), the two `#![allow]` lint removals in
|
||||
`substrate/mod.rs` (the integration task — they can only lift once
|
||||
every substrate surface is wired), and `SqliteOpts::poll_interval`
|
||||
wiring (the constructor task).
|
||||
- **Staying put as ordered**: M-1's retention-failure test and N-5's
|
||||
panic probe → wave 5's contract-suite rows; N-1's growth-posture
|
||||
review → wave 6.
|
||||
|
||||
## Decided points
|
||||
|
||||
- **Contract-suite layout — option (a)**: a small internal
|
||||
@@ -108,4 +141,16 @@ decomposes. Specific gates:
|
||||
columns each engine owns.
|
||||
- **Wave 5 review** — the suite as compatibility instrument: every
|
||||
backlog row present, version-stamped, green on both engines; this is
|
||||
the gate that flips the engine specs to `stable`.
|
||||
the gate that flips the engine specs to `stable`.
|
||||
|
||||
## Review rounds so far
|
||||
|
||||
- **Wave 1 review gate** (`review-wave-1`) — trait surface vs pinned
|
||||
ADR text; validation coverage fixes landed.
|
||||
- **Wave 2 review gate** (`review-wave-2`) — lineage diff clean, one
|
||||
re-derivation defect found and fixed (D-27).
|
||||
- **General review, waves 1–2** (2026-10-08,
|
||||
`docs/reviews/2026-10-08-waves-1-2-general-review.md`) — M-1 fixed
|
||||
inline (sweep savepoint scope); M-2/N-2/N-4/N-6 resolved as ADR-023
|
||||
pre-decomposition; lint removal + suite adds folded into waves 3/5;
|
||||
N-1 recorded for wave 6.
|
||||
Reference in new issue
Block a user