fw-04 — Broader Ideas
Making the stack a data structure
"This must be interruptible, therefore the recursion must become an explicit structure" is a
transferable design move. It appears in generators and coroutines, async state machines, incremental
garbage collection (bi-04), the compositor's raster queue (bi-10), and any long job you want to
pause and resume.
The tell that you need it: you want to inspect, suspend, discard, or duplicate progress, and the call stack gives you none of the four.
Concurrency constrains everything it integrates with
React needed useSyncExternalStore because the ecosystem's stores are arbitrary third-party objects
with no shared contract. You cannot add concurrency to a runtime alone — it imposes requirements
on every library it touches.
This is worth remembering before adopting any concurrency feature: the runtime change is the easy part; the ecosystem contract is the expensive one.
Purity as an enabling condition, not a philosophy
Render must be side-effect free so that work can be discarded, and work must be discardable so that output is consistent. Presenting it as "React is functional" loses the argument; presenting it as the two-line derivation wins it.
The same reframing works for immutability (fw-01), for pure reducers, and for idempotent job
handlers: purity is what makes retry, cache, and cancellation legal.
Priorities need governance
startTransition hands a scheduling lever to someone who cannot see the whole system — the same
problem as scheduler.postTask one layer down, and the reason Chromium's scheduler has
anti-starvation logic rather than trusting priorities.
If you expose priorities in a system you own, plan who owns the policy.
Next
fw-11 sends you into React's source knowing exactly which structures you derived and which you did
not — the ones you did not are your reading list.