Signal dependency resolution across SolidJS suspense boundaries in streaming SSR
0 reputation · 05 Apr 2023, 01:32 UTC
Goal: Assess how SolidJS's signal-driven reactivity granularity interfaces with the start() streaming SSR function when suspense boundaries delimit component boundaries, specifically whether signal updates generate partitionable streaming chunks without triggering full tree re-render or reactivity loss across the server-client handoff. Constraints and uncertainty: Signal batching occurs at the microtask checkpoint, but its ordering relative to other asynchronous work varies across runtimes; the compile-time createRenderFunction transformation may affect how dependency graphs are serialized during incremental chunk delivery, and it remains unclear whether suspense boundary placement respects signal-level granularity or defaults to coarser render boundaries in SolidJS 1.x.
Does a signal change originating inside a suspense boundary produce a distinct streaming chunk, or does it merge with the parent boundary's next scheduled update? How does the compiler's createRenderFunction output represent cross-boundary signal dependencies for streaming serialization? What runtime-specific factors influence microtask queue ordering when multiple signals update concurrently near a start() delivery checkpoint?