Fourth review round (ADR-023): encode_payload typed (Codec), numeric-argument domains pinned by kind, plain-path SQLite open (URI flag dropped, D-29), watcher cadence posture — waves-1-2 general-review findings
This commit is contained in:
1 parent
ee7871d25d
commit
44637eea5b
11 files changed
+502
-22
No files matched your search
@@ -1,6 +1,6 @@
|
||||
---
|
||||
status: draft
|
||||
last_updated: 2026-10-07 (ADR-021 — third review round: tx reads, claimed_at, schedule queue validation, drop=rollback, receiver arms)
|
||||
last_updated: 2026-10-08 (ADR-023 — fourth review round: plain-path open (URI flag dropped), 1 ms watcher default + SqliteOpts knob)
|
||||
---
|
||||
|
||||
# SQLite engine
|
||||
@@ -50,13 +50,28 @@ per-contract obligations live in the core spec and are not restated here.
|
||||
fanning out to listeners, overtriggering on purpose (waking all
|
||||
subscribers per poll tick, even when several commits coalesced
|
||||
inside one tick — wake is a hint; consumers re-read indexed state,
|
||||
[ADR-006](decisions/006-wake-and-delivery-contract.md)).
|
||||
[ADR-006](decisions/006-wake-and-delivery-contract.md)). The 1 ms
|
||||
default is the shipping default — the POC's published wake-latency
|
||||
numbers were measured at it
|
||||
([ADR-023](decisions/023-fourth-review-round.md) §4); the cadence
|
||||
is tunable via `SqliteOpts::poll_interval`
|
||||
([ADR-008](decisions/008-contract-v1-pinning.md) §6's config split
|
||||
— engine opts carry cadence), the documented idle cost and tuning
|
||||
recipe in [deployment.md](deployment.md).
|
||||
- Each connection runs the substrate's bootstrap at open: pragmas
|
||||
(WAL, `synchronous=NORMAL`, busy timeout), `attach_notify`,
|
||||
the substrate's function attachments and schema bootstrap (the
|
||||
alknet-filesystem POC's wiring shape). Watcher spawn is fallible in
|
||||
the substrate ([ADR-012](decisions/012-forked-substrate-design.md)
|
||||
§4); open fails if the watcher cannot start.
|
||||
- **The `open` path argument is a plain filesystem path**
|
||||
([ADR-023](decisions/023-fourth-review-round.md) §3): the
|
||||
substrate's `open_conn` drops the inherited `SQLITE_OPEN_URI` flag
|
||||
(a registered fork delta), so `?name=value` suffixes in the path
|
||||
are literal filenames — no URI interpretation, no connection-
|
||||
semantics mutation outside the constructor's opts (`:memory:` works
|
||||
without URI mode; URI-only features like shared-cache memory DBs
|
||||
re-enter with a consumer-inventory row).
|
||||
|
||||
## Mapping the contract
|
||||
|
||||
@@ -136,6 +151,7 @@ family is `__alkstore_*` (ADR-010 §8's naming authorization).
|
||||
| [019](decisions/019-mechanism-handle-surfaces.md) | Handle surfaces | boxed handle traits (`Queue`/`StreamHandle`/`Outbox`/`Lock`/`JobHandle`); `worker_id` stamps the row's claimant column; `StopToken` core-owned |
|
||||
| [020](decisions/020-enqueue-opt-semantics-and-bridges.md) | Enqueue options | delay-over-`run_at` in the substrate's re-derived enqueue; scheduler fires stamp from derived defaults; serde_json byte encoding |
|
||||
| [021](decisions/021-tx-reads-and-value-shape-fixes.md) | Third review round | tx-read methods route through the writer-slot lease; `Job.claimed_at` (the fork's claimed_at column, surfaced in `Job`); `schedule()` queue argument validated; drop = rollback releases the lease with `ROLLBACK` |
|
||||
| [023](decisions/023-fourth-review-round.md) | Fourth review round | `open` path is a plain filesystem path (URI flag dropped — registered fork delta); 1 ms watcher default stands, cadence carried onto `SqliteOpts::poll_interval`; `encode_payload` typed (`Codec`); numeric-argument domains pinned contract-side (extents clamp empty — enforced at this engine's trait-impl entry over the substrate) |
|
||||
|
||||
## Open Questions
|
||||
|
||||
|
||||
Reference in new issue
Block a user