RSC Architecture & Waterfalls
React Server Components (RSC) are now Dynamic by Default in Next.js 16. While they eliminate client-side waterfalls, they execute on the server for every request unless explicitly optimized with the 'use cache' directive.
Hit F5 (Hard Refresh) to see the server re-render. Internal navigation might use client-cache.
Strategy
Modern Standard: Server-First rendering. In the latest Next.js versions, we shift from 'guessing' cache-ability to an explicit 'Opt-In' performance model.
Hydration
Server sends finished HTML. Browser 'hydrates' it for interactivity.
Cold start. No cache exists yet.
Architectural Insights
Hover over headers to reveal
Infrastructure Lifecycle Data.
Use the timeline buttons at the top to simulate how headers evolve over time in a production environment.
Live RSC Fetch
These products were fetched inside a React Server Component (RSC).
RSCs fetch on the server. Since we used "use cache", the result is stored on the server for ultra-fast subsequent loads.Inter-page navigation is cached by the Browser Router for 30s.
Essence Mascara Lash Princess
The Essence Mascara Lash Princess is a popular mascara known for its volumizing and lengthening effects. Achieve dramatic lashes with this long-lasting and cruelty-free formula.
Eyeshadow Palette with Mirror
The Eyeshadow Palette with Mirror offers a versatile range of eyeshadow shades for creating stunning eye looks. With a built-in mirror, it's convenient for on-the-go makeup application.
Powder Canister
The Powder Canister is a finely milled setting powder designed to set makeup and control shine. With a lightweight and translucent formula, it provides a smooth and matte finish.
Red Lipstick
The Red Lipstick is a classic and bold choice for adding a pop of color to your lips. With a creamy and pigmented formula, it provides a vibrant and long-lasting finish.
The Code Transformation
See how the transition from Client-Side to Server-Side components simplifies your pipeline and improves developer experience.
Pipeline Code Comparison
// ❌ BEFORE: The Waterfall (Client-Side)export default function Dashboard() { const [user, setUser] = useState(null); useEffect(() => { // 1st Round-trip: Fetch User fetch('/api/user') .then(res => res.json()) .then(data => setUser(data)); }, []); if (!user) return <Loading />; // ⚠️ CHILD starts fetching only after PARENT renders return <PostList userId={user.id} />;}Includes heavy useEffect logic, state management, and fetch overhead.
Requests travel over the public internet (High Latency).
Visualization of the Waterfall
Conceptualizing the network requests: CSR requires chaining, while RSC allows consolidation.
client Architecture
The 'Fetch-on-Render' pattern causes children to wait for parent fetches. This is the 'Waterfall' problem.
rsc Architecture
RSCs fetch data on the server with zero client latency between requests, delivering a consolidated result.
The RSC Evolution
From Client-Heavy to Server-First (2020 - 2026)
Conceptual Birth
Facebook introduces RSC to solve the "huge JS bundles" problem. The idea: some components should never hydrate on the client.
App Router Launch
The first production implementation. Data fetching becomes as simple as await fetch() inside your components.
The Explicit Cache Era
Introduction of dynamicIO and "use cache". The platform moves to Dynamic by Default, giving developers surgical control over component-level caching.
Technical Documentation
Read the full architecture breakdown in ABOUT.md