radar: pass 23 — W8 broadened to externally-resumed flow orchestration (commerce order saga 2nd consumer); events fed-sx-ready reinforces W1
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 1m48s

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-07 09:02:10 +00:00
parent 7cf661d514
commit 6b449a8422

View File

@@ -12,7 +12,13 @@ Anything short → _Watching_ (what's missing) or _Rejected_ (why).
## Last scan ## Last scan
- **Date:** 2026-06-07 (radar loop, pass 22) - **Date:** 2026-06-07 (radar loop, pass 23)
- **Pass 23 — trigger fired (empty streak ends at 1922).** commerce recorded a Phase 3
**flow-integration design** (order saga as a flow-on-sx flow, payment suspended until
webhook resume) → 2nd durable-flow consumer; **W8 broadened** from "delivery" to
"externally-resumed orchestration on lib/flow." events made its federation transport
**fed-sx-ready** (injected) → reinforces W1's 5/5 inject-fed-sx seam. acl left tmux
(now fully quiescent). host-persist adapter still not landed (W4 migration still gated).
- **Empty-discovery streak: passes 1922** (last verified pass 22). Fleet at steady state — - **Empty-discovery streak: passes 1922** (last verified pass 22). Fleet at steady state —
active loops (content CvRDT, events recurrence/reschedule, identity grant-mgmt, fed-sx active loops (content CvRDT, events recurrence/reschedule, identity grant-mgmt, fed-sx
outbox internals) are building *inside* their domains, not cross-cutting infra. Census outbox internals) are building *inside* their domains, not cross-cutting infra. Census
@@ -370,20 +376,25 @@ one merged file copied N times. Correct one-liner:
--- ---
### W8 · Durable outbound delivery (at-least-once + idempotency + retry) ### W8 · Durable externally-resumed orchestration on `lib/flow` (suspend→host-IO→resume)
- **Live exemplar on `lib/flow`:** `events/lib/events/notify.sx` — reminders/digests are - **The shared shape:** a durable `flow` that `request`s an external action (a suspend
durable `flow`s: a flow `request`s delivery (suspend point), the **host** performs the point), the **host** performs the IO, then `flow/resume`s the flow with the outcome;
send via an injected `dispatch` transport, then resumes with the outcome; flow's flow's deterministic replay means a completed step never re-runs on recovery.
deterministic replay means a completed delivery never re-runs on recovery. At-least-once - **Consumers (pass 23): 1 live + 1 designed.**
with an idempotency key per message. This is "reliable delivery" done right on the flow - `events/lib/events/notify.sx` (**live**) — reminders/digests as durable flows;
substrate. suspend on delivery `dispatch`, resume with send outcome. At-least-once + idempotency key.
- **Others roll their own:** `fed-sx` built its own outbox + `delivery_worker` + retry - `commerce` Phase 3 (**designed**, `commerce/plans/commerce-on-sx.md`) — order saga
bookkeeping (Steps 8ad); `mod/fed.sx` has an in-memory outbox seam; `acl/federation` `(defflow ordf … (request 'reserve oid) … )`: reserve→pay→fulfil as a flow, **payment
propagates facts. Same *goal* (reliable outbound delivery, retry/idempotency) on stays suspended until the payment webhook calls `flow/resume`**. Carries only the
different machinery. order-id; pure orchestration over `ledger.sx`.
- **Disposition:** durable delivery is exactly what `lib/flow` is *for* (events proves - Both are the *same* pattern: long-running process, external resume (delivery dispatch
it). Watch whether fed-sx / mod converge their outbox onto flow, or stay bespoke for vs payment webhook). fed-sx/mod still roll their own outbox (watch for convergence).
perf/substrate reasons. 1 clean flow-based consumer today → Watching, not a proposal. - **Disposition:** `lib/flow` IS the abstraction (events proves it, commerce adopts it) →
this is an **adoption** observation like W4, NOT an extraction. Home = `lib/flow`.
- **Flow-onboarding friction (light signal):** commerce's note logs real gotchas adopting
flow — `flow-make-env` returns a large likely-cyclic env (don't print it), env build is
slow (budget ~540s like flow's own suite). If ≥3 subsystems hit the same onboarding
gotchas, that's a signal to smooth `lib/flow`'s adopter API — flow's concern, flagged here.
- **Name-collision caveat:** `notify.sx` means two unrelated things — `feed/notify.sx` is - **Name-collision caveat:** `notify.sx` means two unrelated things — `feed/notify.sx` is
a *read-side digest* (group inbox by verb+object), NOT delivery. Do not pair them. a *read-side digest* (group inbox by verb+object), NOT delivery. Do not pair them.