Files
alkstore/alkstore-postgres
glm-5.3-flash 23cf0e7046 chore(deps): normalize engines' dev-dep tokio features (review 004 item 16)
All three engines' [dev-dependencies] tokio now carry the same feature
set: rt-multi-thread + macros + time + test-util (previously sqlite had
rt-multi-thread+macros+time, pg test-util only, mem rt+macros).
Dev-dep metadata only; each engine's tests verified green plus the
workspace build/clippy/fmt gates.
2026-10-11 15:10:55 +00:00
..
core: verify and pin the receiver's pre-yield offset() value (review 004 item 12, core-pin-offset-initial-value) — the three engines verified equal live, so the doc-pin branch applies: offset() reads 0 before any yield on every receiver — fresh consumer, stored positive checkpoint, stored negative seed (ADR-023 §2's totality arm, the one a checkpoint-seeded realization would surface on) — the no-yield sentinel, never the stored checkpoint: the checkpoint gates the feed's attach-read start while the receiver's offset tracks the last-yielded event only, composing with the pinned pre-yield save_offset() no-op; the attach read's prefetches sit unobserved and the first recv/try_recv observation is the first move (then the post-yield value, receiver_close_and_save_arms' pin). Verified by code read first (all three offset() bodies are self.position, all three constructors seed position: 0 unconditionally — mem stream.rs:353, sqlite :399, pg :620) then live: new suite row receiver_offset_pre_yield_is_zero (alkstore-contract-suite, stamped ADR-008 §8 + the core-contract.md pin, four arms incl. the first-observation composition leg) green on all three columns, pg against the harness server (parked pglo-poc :15432); pinned in three places: core-contract.md streams/subscribe row (dated 2026-10-11 annotation) + a verification-backlog bullet recording the verified pin, the core trait doc on offset() (core's doc comments are contract text), and the suite row itself — ADR-008 §8's shape comment deliberately left untouched (doc-only verification takes no ADR amendment, noted in the task); no engine code changed, no divergence to raise; gates green: workspace build/tests server-less, full pg column vs harness (135+26+9), clippy -D warnings, fmt --check, doc gate zero warnings, fuzz corpus replay 6/6, wasm32 mem check, taskgraph validate (96); task -> completed
2026-10-11 14:34:15 +00:00

alkstore-postgres

The Postgres engine of the alkstore family: the core contract implemented on tokio-postgres + deadpool-postgres, natively async (no blocking bridge, no spawn_blocking seam), with a hand-rolled LISTEN forwarder.

let store = alkstore_postgres::open(&dsn, alkstore_postgres::PgOpts::default()).await?;

Engine posture — multi-host native. Connections are per-process state; nothing assumes a shared host. Connection budget: max_size pooled connections + 1 non-pooled listener connection per LISTEN-ing process (pooled connections cannot carry LISTEN) — size the server for the sum. v1 TLS is effectively unavailable: the engine hardwires NoTls on every connection path, so network confidentiality must come from the deployment topology. Queue/stream/lock/schedule tables live in one engine-owned PostgreSQL schema (default alkstore, per-engine option).

See the family README for the interface and the deployment matrix, and the Postgres engine spec for the driver's details.