events: wire persist-backed booking into api.sx + 10 tests
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 35s
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 35s
Durable booking path alongside in-memory: ev/book-occ!, ev/cancel-occ!, ev/roster-occ, ev/seats-left-occ (capacity from scheduled event); ev/free-p?, ev/next-free-p, ev/conflicts-p derive availability by replaying persist booking streams. Reordered conformance preloads. 120/120 green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -18,7 +18,7 @@ capacity rules, transactional booking, and a flow-driven notification dispatcher
|
||||
|
||||
## Status (rolling)
|
||||
|
||||
`bash lib/events/conformance.sh` → **110/110** (Phase 1 complete + Phase 2 booking + cancellation)
|
||||
`bash lib/events/conformance.sh` → **120/120** (Phase 1 + Phase 2 booking/cancel + persist-backed api)
|
||||
|
||||
## Ground rules
|
||||
|
||||
@@ -63,7 +63,7 @@ lib/events/api.sx ── (events/schedule) (events/book) (events/agenda) ──
|
||||
|
||||
## Phase 2 — Ticketing + booking
|
||||
- [x] capacity rules; transactional booking → `persist` (no overbooking)
|
||||
- [ ] wire `booking.sx` into `api.sx` (persist-backed `ev/book`)
|
||||
- [x] wire `booking.sx` into `api.sx` (persist-backed `ev/book-occ!` + derived availability)
|
||||
- [x] cancellation (tombstone events) + seat release
|
||||
- [ ] paid tickets compose with `commerce` order flow
|
||||
- [x] tests: capacity edge, double-book guard, conflict detection
|
||||
@@ -81,6 +81,13 @@ lib/events/api.sx ── (events/schedule) (events/book) (events/agenda) ──
|
||||
|
||||
## Progress log
|
||||
|
||||
- 2026-06-07 — Wired `booking.sx` into `api.sx`: durable persist-backed booking
|
||||
path alongside the in-memory one. `ev/book-occ!`, `ev/cancel-occ!`,
|
||||
`ev/roster-occ`, `ev/seats-left-occ` (capacity from the scheduled event);
|
||||
`ev/free-p?`, `ev/next-free-p`, `ev/conflicts-p` derive availability by
|
||||
replaying persist booking streams for in-window occurrences. Capacity-safe +
|
||||
cancellable bookings now flow through the public API. Reordered conformance
|
||||
preloads (persist + booking before events/api). +10 tests, 120/120 green.
|
||||
- 2026-06-07 — Cancellation + seat release. Booking stream now carries
|
||||
:booking / :cancel events; the live roster is the FOLDED replay (book adds,
|
||||
cancel removes) so capacity reopens when a seat is freed. `ev/cancel!`
|
||||
|
||||
Reference in New Issue
Block a user