Context
PR #2803 replaced fictional async-props APIs with real stream_react_component patterns. During review, multiple reviewers flagged that the docs now conflate two distinct concepts under "streaming":
- HTML streaming —
renderToPipeableStream streams rendered HTML progressively as React renders the component tree. Works with stream_react_component + synchronous props.
- Progressive data streaming — Slow data sources resolve independently and stream results to the browser, filling in Suspense placeholders. Requires async Server Components + Suspense boundaries (as shown in
docs/pro/streaming-ssr.md).
Problem
Several sections use titles like "Progressive Streaming Architecture" and "Streaming Slow Data" but show code that loads ALL data synchronously in Rails before anything is sent. The HTML streaming is real, but it's not "progressive" in the way users expect — no data arrives incrementally.
Affected files and sections
docs/oss/migrating/rsc-data-fetching.md — "Progressive Streaming Architecture" (line ~679), "How it works" steps (line ~126)
docs/oss/migrating/rsc-component-patterns.md — Pattern 4 description (line ~334)
docs/oss/migrating/rsc-context-and-state.md — Pattern 3 description (line ~127)
Additional: as_json(include:) without only: scopes
The @product.as_json(include: [:specs, :reviews]) pattern used in 3 files serializes all columns of included associations. While less sensitive than user data, it's inconsistent with the current_user.as_json(only: [...]) pattern the PR introduced. Consider either:
- Adding
only: scopes to included associations
- Adding a brief comment recommending
only: for production use
Suggested approach
- Accurately describe the synchronous-props pattern (all data loads before rendering starts — simpler but not progressive)
- For truly progressive streaming, show the async Server Component + Suspense pattern from
docs/pro/streaming-ssr.md
- Align section titles with what the code actually demonstrates
References
Closes: n/a (follow-up from #2803)
Context
PR #2803 replaced fictional async-props APIs with real
stream_react_componentpatterns. During review, multiple reviewers flagged that the docs now conflate two distinct concepts under "streaming":renderToPipeableStreamstreams rendered HTML progressively as React renders the component tree. Works withstream_react_component+ synchronous props.docs/pro/streaming-ssr.md).Problem
Several sections use titles like "Progressive Streaming Architecture" and "Streaming Slow Data" but show code that loads ALL data synchronously in Rails before anything is sent. The HTML streaming is real, but it's not "progressive" in the way users expect — no data arrives incrementally.
Affected files and sections
docs/oss/migrating/rsc-data-fetching.md— "Progressive Streaming Architecture" (line ~679), "How it works" steps (line ~126)docs/oss/migrating/rsc-component-patterns.md— Pattern 4 description (line ~334)docs/oss/migrating/rsc-context-and-state.md— Pattern 3 description (line ~127)Additional:
as_json(include:)withoutonly:scopesThe
@product.as_json(include: [:specs, :reviews])pattern used in 3 files serializes all columns of included associations. While less sensitive than user data, it's inconsistent with thecurrent_user.as_json(only: [...])pattern the PR introduced. Consider either:only:scopes to included associationsonly:for production useSuggested approach
docs/pro/streaming-ssr.mdReferences
docs/pro/streaming-ssr.mdfor the actual progressive streaming patternCloses: n/a (follow-up from #2803)