ADR-015: streams depth — carried-metadata keys, global-FIFO ordering, StreamEvent, trim_to (OQ-12 resolved)
This commit is contained in:
1 parent
04a04651dc
commit
8c4ec48f92
12 files changed
+562
-110
No files matched your search
@@ -60,7 +60,7 @@ per-contract obligations live in the core spec and are not restated here.
|
||||
| Contract piece | Engine realization |
|
||||
|---|---|
|
||||
| notify / listen | honker's notify functions inside the caller's tx; `listen()` bridges the watcher's fanout into a tokio receiver (one `spawn_blocking` thread per subscription doing `blocking_send`) |
|
||||
| streams | honker's stream machinery; explicit offset saves through the tx seam |
|
||||
| streams | the forked substrate's stream machinery (inherited near-verbatim — the `__alkstore_stream` table's field set is already the contract's shape (its `topic` column carries the contract's `stream` field — the one name delta, ADR-012 §3's fidelity posture), the offset-ASC read path, keyed publish's nullable key column, monotone offset saves ([ADR-015](decisions/015-streams-depth.md)); explicit offset saves through the tx seam; `trim_to` is a `DELETE FROM … WHERE offset <= ?` inside the writer-slot lease) |
|
||||
| queues | owned queue machinery (forked substrate re-derived on [ADR-010](decisions/010-queue-semantics-depth.md) — stamps, no-stranded-rows sweep, dead-visible `get_job`); ADR-003's ride posture superseded on ownership by [ADR-011](decisions/011-sqlite-substrate-fork.md) |
|
||||
| named locks | the substrate's lock machinery (`lock_renew` carries the renew semantics the guarantee row pins; re-acquire does not refresh TTL — inherited deliberately, [ADR-012](decisions/012-forked-substrate-design.md) §4) |
|
||||
| scheduler / outbox | collapse shape ([ADR-009](decisions/009-scheduler-collapse.md)): owned scheduler storage (`__alkstore_scheduler_tasks`, forked substrate) carrying `@every` specs (cron machinery not ported); the leader loop pattern (TTL lock, heartbeat, exit-before-tick-on-loss); the leadership lock is `__alkstore_scheduler`; outbox = helper over queues with the derived backing-queue name ([ADR-008](decisions/008-contract-v1-pinning.md) §4) |
|
||||
@@ -126,6 +126,7 @@ family is `__alkstore_*` (ADR-010 §8's naming authorization).
|
||||
| [012](decisions/012-forked-substrate-design.md) | Fork design | contract-blind substrate, fidelity posture, port deltas, panic-free watcher death |
|
||||
| [013](decisions/013-fold-substrate-into-sqlite.md) | Substrate packaging | folded into `alkstore-sqlite` (`src/substrate/`); no fourth crate |
|
||||
| [014](decisions/014-outbox-tx-enqueue.md) | Outbox tx enqueue | `outbox_enqueue_tx` on `TxHandle`; derivation engine-side through the writer-slot lease |
|
||||
| [015](decisions/015-streams-depth.md) | Streams depth | key = carried metadata (the inherited nullable column); global-FIFO ordering; `trim_to` as a writer-lease delete; event shape already the substrate's |
|
||||
|
||||
## Open Questions
|
||||
|
||||
@@ -136,8 +137,13 @@ questions affecting this document:
|
||||
- **OQ-06**: honker-core quality read — fork-trigger assessment —
|
||||
**resolved** (2026-10-05,
|
||||
[ADR-011](decisions/011-sqlite-substrate-fork.md); trigger fired).
|
||||
- **OQ-12**: streams depth (affects this engine's stream realization
|
||||
— key column, event shape, retention) ([open](open-questions.md))
|
||||
- **OQ-12**: streams depth — **resolved**
|
||||
(2026-10-05, [ADR-015](decisions/015-streams-depth.md)): key =
|
||||
carried metadata; global-FIFO-by-offset ordering row;
|
||||
`StreamEvent` shape (honker's, `topic` → `stream` in the contract
|
||||
type — the substrate's column name stays per the ADR-012 §3
|
||||
fidelity posture); `publish_with_key_tx` routes through the
|
||||
writer-slot lease; `trim_to` is a plain delete in the same lease.
|
||||
- **OQ-13**: transactional outbox enqueue shape — **resolved**
|
||||
(2026-10-05, [ADR-014](decisions/014-outbox-tx-enqueue.md)):
|
||||
`outbox_enqueue_tx(outbox, opts, payload)` on the `TxHandle` trait;
|
||||
@@ -146,6 +152,7 @@ questions affecting this document:
|
||||
substrate's `__alkstore_outbox:{name}` backing queue.
|
||||
|
||||
Resolved: **OQ-09** (scheduler collapse —
|
||||
[ADR-009](decisions/009-scheduler-collapse.md)) and **OQ-05** (queue
|
||||
semantics depth — [ADR-010](decisions/010-queue-semantics-depth.md)),
|
||||
[ADR-009](decisions/009-scheduler-collapse.md)), **OQ-05** (queue
|
||||
semantics depth — [ADR-010](decisions/010-queue-semantics-depth.md)), and
|
||||
**OQ-12** (streams depth — [ADR-015](decisions/015-streams-depth.md)),
|
||||
2026-10-05.
|
||||
Reference in new issue
Block a user