persist: materialized views — stay current on write, O(1) read + 11 tests
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 27s
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 27s
view.sx: persist/view bundles stream + fold + snapshot name; view-attach subscribes it to a hub so each publish refreshes the snapshot incrementally, making view-peek an O(1) current read. view-value always folds the tail so it is never stale. The consumer read-model abstraction (feed indices, audit rollups, search counters). 122/122. 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` → **111/111** (Phases 1–4 complete)
|
||||
`bash lib/persist/conformance.sh` → **122/122** (Phases 1–4 complete + extensions)
|
||||
|
||||
## Ground rules
|
||||
|
||||
@@ -144,11 +144,22 @@ suspends and the host resumes it transparently, so the facet code is unaware.
|
||||
Tests prove this by routing the identical request shapes through `persist/serve`
|
||||
over an in-process disk (the mock-IO harness).
|
||||
|
||||
## Extensions (post-roadmap)
|
||||
- [x] `view.sx` — materialized views: bundle stream + fold + snapshot name;
|
||||
`view-attach` keeps the snapshot current on every publish so `view-peek` is an
|
||||
O(1) read. The consumer-facing read-model abstraction (feed indices, audit
|
||||
rollups, search counters).
|
||||
|
||||
## 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: materialized views (122/122).** `view.sx` — `persist/view` bundles
|
||||
stream + step + seed + snapshot name; `view-attach` subscribes it to a hub so
|
||||
every publish refreshes the snapshot incrementally; `view-peek` is then an
|
||||
O(1) current read (no fold), `view-value` always folds the tail so it's never
|
||||
stale. 11 tests incl. on durable backend + a sum-over-data view.
|
||||
- **Phase 4c+4d (111/111) — Phase 4 complete, roadmap done.** `recovery.sx` — a
|
||||
6-test crash/restart integration: an order ledger (event log + subscription
|
||||
kv read model + snapshot + compaction + invoice blob ref) over the durable
|
||||
|
||||
Reference in New Issue
Block a user