persist: subscription hub — read models update on publish + 9 tests
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 1m6s
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 1m6s
subscribe.sx: persist/hub wraps a backend; persist/publish appends then fires per-stream callbacks (backend stream event). Direct persist/append bypasses subscribers (bulk load/replay). Callbacks drive kv counters / project-resume. 46/46. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -95,7 +95,7 @@ lib/persist/backend.sx lib/persist/api.sx
|
||||
|
||||
## Phase 2 — Projections + subscriptions
|
||||
- [x] `project.sx` — `(project stream step seed)`, incremental fold
|
||||
- [ ] subscription hook — projection / kv read model re-runs on append
|
||||
- [x] subscription hook — projection / kv read model re-runs on append
|
||||
- [ ] concurrency conflict surfaced as a real result, not a crash
|
||||
|
||||
## Phase 3 — Snapshots + replay
|
||||
@@ -113,6 +113,11 @@ feed/-log, flow store, mod/audit, search index, acl grants, identity sessions al
|
||||
become `persist` log or kv. Track each migration in that subsystem's plan.
|
||||
|
||||
## Progress log
|
||||
- **Phase 2b (46/46).** `subscribe.sx` — `persist/hub` wraps a backend with
|
||||
per-stream callbacks. `persist/publish` appends then fires subscribers
|
||||
`(backend stream event)`; direct `persist/append` bypasses them by design
|
||||
(bulk load/replay). Canonical use: callback re-runs `project-resume` or bumps
|
||||
a kv counter so read models update on write. 9 tests.
|
||||
- **Phase 2a (37/37).** `project.sx` — projection state `{:value :seq}`;
|
||||
`persist/project` folds whole stream from seed, `persist/project-resume`
|
||||
folds only the tail (seq > prior seq) so read models update incrementally.
|
||||
|
||||
Reference in New Issue
Block a user