persist: global commit ordering across streams + 11 tests
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 46s
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 46s
global.sx: persist/gappend records a pointer in a reserved $global index whose seq is the global commit position; read-global/project-global replay every event in commit order; global-from for incremental consumers. Opt-in (plain append untouched); $-prefixed streams now reserved + hidden from the public catalog (streams-all reveals them). Gives feed its unified timeline. Deterministic across restart. 191/191. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -42,7 +42,7 @@ read models (feeds, indices, audit logs) update incrementally.
|
||||
|
||||
## Status (rolling)
|
||||
|
||||
`bash lib/persist/conformance.sh` → **180/180** (Phases 1–4 complete + extensions)
|
||||
`bash lib/persist/conformance.sh` → **191/191** (Phases 1–4 complete + extensions)
|
||||
|
||||
## Ground rules
|
||||
|
||||
@@ -177,11 +177,25 @@ over an in-process disk (the mock-IO harness).
|
||||
keyed by a caller idempotency key (per stream), returning the same event on a
|
||||
repeat. Marker lives in kv, so idempotency holds across restart. `seen?` check.
|
||||
|
||||
- [x] `global.sx` — global commit ordering across streams (the primitive feed's
|
||||
unified timeline needs). `persist/gappend` records a pointer in a reserved
|
||||
`$global` index whose seq is the commit position; `read-global`/
|
||||
`project-global` replay every event in commit order; `global-from` for
|
||||
incremental consumers. Opt-in (plain `append` never touches it); reserved
|
||||
index hidden from the public catalog. Deterministic across restart.
|
||||
|
||||
## Consumers (post-foundation, not in scope here)
|
||||
feed/-log, flow store, mod/audit, search index, acl grants, identity sessions all
|
||||
become `persist` log or kv. Track each migration in that subsystem's plan.
|
||||
|
||||
## Progress log
|
||||
- **Ext: global commit ordering (191/191).** `global.sx` — `persist/gappend`
|
||||
records a pointer in a reserved `$global` index (its seq = global commit
|
||||
position); `read-global`/`project-global` resolve pointers to events in commit
|
||||
order; `global-from` for incremental global consumers. Opt-in; `$`-streams are
|
||||
now reserved + hidden from the public catalog (`streams-all` reveals them).
|
||||
Gives feed its cross-stream timeline. 11 tests incl. durable + restart
|
||||
determinism.
|
||||
- **Ext: exactly-once append (180/180).** `idempotency.sx` —
|
||||
`persist/append-once` appends at most once per (stream, idempotency key),
|
||||
returning the same event on a repeat; the marker lives in kv so it survives
|
||||
|
||||
Reference in New Issue
Block a user