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.