Next.js
Suspense & Streaming
Suspense boundaries allow parts of the UI to stream independently in App Router.
Suspense with RSC
- Server streams ready parts of the tree as they finish.
- Slow components or fetches show fallbacks.
- RSC payload arrives in steps.
Automatic boundaries
- Around segments with
loading.js. - Around nested layouts and dynamic segments.
- Enables partial UI while slower parts load.
Streaming behavior
- Server sends HTML and RSC in chunks.
- Client renders minimal HTML first, then updates with fragments.
Suspense in Client Components
Suspense works on the client but without RSC streaming.
<Suspense fallback={<Spinner />}>
<Chart />
</Suspense>Why it matters
- Faster perceived load.
- Parallel rendering for large layout trees.