review-wave-8 — the pre-release gate passes: one contract-observable divergence found and fixed (pg's negative-seed GREATEST clamp + offsets CHECK contradicted ADR-023 §2's stored-checkpoint annotation; raw seed now, window open until first publish); the close-out's registered suite-duty follow-up discharged (negative heartbeat(extend) leg in job_handle_validity_predicate, negative save_offset seed leg in receiver_close_and_save_arms — stamped, uniform, green on all three columns vs the live harness server); the class-1 termination of record landed in ADR-017 §2 (no undisposed candidate remains; the window closes permanently at the first cargo publish); release-facing spec set flipped stable with dated gate annotations (core-contract, overview, queues, deployment current, the architecture README — Current State through wave 8, engine-mem's table row corrected); implementation.md records updated; N-1/Findings 2–3/flake/publish-prep audits recorded; all gates re-run green incl. fuzz replay, wasm32, doc gate
This commit is contained in:
1 parent
4a7520c817
commit
5385f6bee3
12 files changed
+479
-72
No files matched your search
+26
-16
@@ -1,8 +1,9 @@
|
||||
---
|
||||
status: draft
|
||||
last_updated: "2026-10-10 (ADR-024: the mem engine adopted as a third
|
||||
engine — engine-mem.md added, ADR table row, index updated for the
|
||||
implementation phase)"
|
||||
status: stable
|
||||
last_updated: "2026-10-11 (the wave-8 review gate passed — pre-release
|
||||
freeze: the release-facing spec set flipped stable, Current State
|
||||
refreshed through wave 8; the class-1 window's dispositions complete,
|
||||
the window terminates at first publish)"
|
||||
---
|
||||
|
||||
# alkstore — Architecture
|
||||
@@ -14,29 +15,38 @@ engine native underneath (see [overview.md](overview.md)).
|
||||
|
||||
## Current State
|
||||
|
||||
**Phase 1 (Implementation) — waves 1–5 implemented and reviewed.**
|
||||
**Phase 1 (Implementation) — waves 1–8 implemented and reviewed; the
|
||||
pre-release gate passed (2026-10-11).**
|
||||
Phase 0 is complete (`docs/research/phase-0.md`): both POCs ran and
|
||||
passed, the scope inventory is confirmed, and the crate split,
|
||||
drivers, and ownership postures are decided. All open questions are
|
||||
resolved (through ADR-023), and the engine specs flipped `stable` at
|
||||
the wave-5 review gate. Waves 1–5 (core, substrate fork, SQLite
|
||||
engine, Postgres engine, contract suite) are implemented and reviewed
|
||||
per `docs/plans/implementation.md`. The mem engine was adopted as a
|
||||
third engine by [ADR-024](decisions/024-mem-engine.md) (2026-10-10,
|
||||
wave 6 — release readiness renumbered to wave 7).
|
||||
the wave-5 review gate, the mem spec at wave 6. Waves 1–7 (core,
|
||||
substrate fork, SQLite engine, Postgres engine, contract suite, mem
|
||||
engine, fuzzing) are implemented and reviewed; wave 8 (release
|
||||
readiness: crate docs, the deployment matrix's final pass, the
|
||||
README, publish prep — with N-1's growth-posture acceptance, review
|
||||
003 Findings 2–3, the flake investigation, and the class-1 window's
|
||||
last dispositions riding it) passed its review gate on 2026-10-11.
|
||||
ADR-024 adopted the mem engine as a third engine (2026-10-10,
|
||||
[ADR-024](decisions/024-mem-engine.md)). The class-1 amend-in-place
|
||||
window ([ADR-017](decisions/017-contract-versioning.md) §2)
|
||||
dispositions are complete; the window terminates permanently at the
|
||||
first `cargo publish` of `alkstore` — the gate's blessing covers
|
||||
publishing.
|
||||
|
||||
## Architecture Documents
|
||||
|
||||
| Doc | Status | Purpose | Key OQs |
|
||||
|---|---|---|---|
|
||||
| [overview.md](overview.md) | draft | Crate family, feature surface, non-goals, evidence base | — |
|
||||
| [core-contract.md](core-contract.md) | draft | The unified trait surface, delivery guarantees, tx seam | OQ-10 (resolved) |
|
||||
| [overview.md](overview.md) | stable | Crate family, feature surface, non-goals, evidence base | — |
|
||||
| [core-contract.md](core-contract.md) | stable | The unified trait surface, delivery guarantees, tx seam | OQ-10 (resolved) |
|
||||
| [engine-sqlite.md](engine-sqlite.md) | stable | SQLite engine: forked-substrate/rusqlite mapping | OQ-06 (resolved), OQ-12 (resolved), OQ-13 (resolved) |
|
||||
| [engine-postgres.md](engine-postgres.md) | stable | Postgres engine: tokio-postgres/LISTEN mapping | OQ-08 (resolved), OQ-12 (resolved), OQ-13 (resolved) |
|
||||
| [engine-mem.md](engine-mem.md) | draft | Mem engine: in-process ephemeral mapping of the contract ([ADR-024](decisions/024-mem-engine.md)) | — |
|
||||
| [queues.md](queues.md) | draft | Queue/scheduler/outbox semantics depth (resolved: ADR-009/ADR-010) | OQ-05 (resolved), OQ-09 (resolved), OQ-06 (resolved) |
|
||||
| [deployment.md](deployment.md) | draft | Host semantics, connection budgets, knobs, matrix | OQ-08 (resolved) |
|
||||
| [open-questions.md](open-questions.md) | draft | OQ tracker (promoted from OQ-ST register) | — |
|
||||
| [engine-mem.md](engine-mem.md) | stable | Mem engine: in-process ephemeral mapping of the contract ([ADR-024](decisions/024-mem-engine.md)) | — |
|
||||
| [queues.md](queues.md) | stable | Queue/scheduler/outbox semantics depth (resolved: ADR-009/ADR-010) | OQ-05 (resolved), OQ-09 (resolved), OQ-06 (resolved) |
|
||||
| [deployment.md](deployment.md) | stable | Host semantics, connection budgets, knobs, matrix | OQ-08 (resolved) |
|
||||
| [open-questions.md](open-questions.md) | draft | OQ tracker (promoted from OQ-ST register) — the register's own lifecycle; the question set is closed | — |
|
||||
|
||||
## Architecture Decision Records
|
||||
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
---
|
||||
status: draft
|
||||
last_updated: "2026-10-11 (the pre-release class-1 close-out pass — the publish→wake ordering tolerance recorded; ADR-023 §2's `heartbeat(extend)`/`save_offset` classifications; `EventReceiver::try_recv`'s closed shape; `get_job`'s id-global prose)"
|
||||
status: stable
|
||||
last_updated: "2026-10-11 (the pre-release class-1 close-out pass — the
|
||||
publish→wake ordering tolerance recorded; ADR-023 §2's
|
||||
`heartbeat(extend)`/`save_offset` classifications;
|
||||
`EventReceiver::try_recv`'s closed shape; `get_job`'s id-global prose —
|
||||
then wave-8 gate: flipped stable with the close-out pass's suite legs
|
||||
landed; the contract text freezes at the gate, ADR-017 §2)"
|
||||
---
|
||||
|
||||
# Core contract
|
||||
@@ -792,8 +797,10 @@ before the engine specs are called `stable`:
|
||||
totality over non-positive values covers `heartbeat(extend)`'s
|
||||
relative-deadline argument and `save_offset`'s offset — both
|
||||
classified 2026-10-11 by the close-out pass, the ADR-023 §2
|
||||
annotation; their suite rows are the follow-up that
|
||||
classification implies).
|
||||
annotation; their suite legs landed at the wave-8 gate in
|
||||
`job_handle_validity_predicate` and
|
||||
`receiver_close_and_save_arms`, uniformly green on all three
|
||||
engines).
|
||||
- **`encode_payload` typed failure**
|
||||
([ADR-023](decisions/023-fourth-review-round.md) §1) — the helper
|
||||
returns `Result<Vec<u8>, Error::Codec>`; enqueue/publish store and
|
||||
|
||||
@@ -128,7 +128,16 @@ duty — that is what makes them non-events).
|
||||
extensions*, fall in this class in fact — nothing was released
|
||||
when they were made, so their additions ship inside the initial
|
||||
contract v1 text (the initial release carries ADR-008 through
|
||||
ADR-017 whole).
|
||||
ADR-017 whole). *(Termination of record, 2026-10-11 — the wave-8
|
||||
review gate: the pre-release class-1 close-out pass landed every
|
||||
recorded disposition (the publish→wake ordering tolerance; the
|
||||
ADR-023 §2 `heartbeat(extend)`/`save_offset` classifications; the
|
||||
`EventReceiver::try_recv` closed shape; the `get_job` prose; the
|
||||
mem-arithmetic no-action) and the gate audited that **no
|
||||
undisposed class-1 candidate remains**. The class terminates
|
||||
permanently at the core crate's first `cargo publish` — the 0.1.0
|
||||
release this gate blesses, per §1's amendment; from that publish
|
||||
on, contract changes are classes 2–4 only.)*
|
||||
2. **Additive extension** (the ADR-009/010 *shape*, applied
|
||||
post-release) — a new trait method, a new type, a new error
|
||||
variant, a new field on a consumer-read value type (§3's
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
---
|
||||
status: draft
|
||||
last_updated: "2026-10-10 (ADR-024 — the mem engine joins the crate
|
||||
family as `alkstore-mem`; family/ADR tables updated)"
|
||||
status: stable
|
||||
last_updated: "2026-10-11 (wave-8 gate: flipped stable — the family
|
||||
picture frozen with the shipped thing; no further surface under
|
||||
development)"
|
||||
---
|
||||
|
||||
# alkstore — Overview
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
---
|
||||
status: draft
|
||||
last_updated: "2026-10-11 (close-out pass: the reads sentence now says the uniform shapes — get_job id-global on the handle, get_job_tx queue-filtered)"
|
||||
status: stable
|
||||
last_updated: "2026-10-11 (the reads sentence now says the uniform
|
||||
shapes — get_job id-global on the handle, get_job_tx queue-filtered;
|
||||
wave-8 gate: flipped stable, the release-facing semantic depth frozen
|
||||
with the contract)"
|
||||
---
|
||||
|
||||
# Queues, scheduler, outbox — semantics depth
|
||||
|
||||
Reference in new issue
Block a user