D11 Pipeline: Overview

Drupal 11 Render Pipeline

How Drupal converts an HTTP request into a rendered response. Click the detail links on each phase to explore it in depth.

HTTP Request (Browser)
 
Phase ① — HTTP Foundation & Middleware
Symfony Middleware Stack
index.phpDrupalKernel::handle()StackedHttpKernel
Middleware chain (PageCache, ReverseProxy, …) → HttpKernel::handle()

Detail →

 
Phase ② — Routing & Controller Resolution
REQUEST Event → Route Match → Controller Execution
KernelEvents::REQUESTRouterControllerResolverArgumentResolver → controller called

Detail →

 
Controller returns…
 
→ Response object
Symfony handles directly
Bypasses all Drupal rendering. Jumps straight to KernelEvents::RESPONSE.
→ Render array
Phase ③ — VIEW Event
MainContentViewSubscriber + Format Negotiation
KernelEvents::VIEWMainContentViewSubscriber → negotiate format → pick renderer

Detail →

 
Phase ④ — HTML Renderer (HTML path)
HtmlRenderer::prepare() + renderResponse()
Page display variant → hook_page_attachments → wrap in #type htmlhook_page_top/bottom

Detail →

 
Phase ⑤ — Renderer & Theme System
Renderer → ThemeManager → Twig (+ SDC)
Cache check → #pre_render → theme negotiation → Twig/SDC template → #post_render → cache write

Detail →

 
Phase ⑥ — Caching & BigPipe
Dynamic Page Cache + BigPipe Placeholder Streaming
Auto-placeholdering → #lazy_builder callbacks → streamed chunks → HtmlResponse

Detail →

 
Response Delivery
KernelEvents::RESPONSE → Send → kernel.terminate
KernelEvents::RESPONSE (response alter) → HttpKernel::handle() returns → KernelEvents::FINISH_REQUESTkernel.terminate (async cleanup)
 
HTTP Response (Browser)
Drupal 11 vs Drupal 8 — key differences

Core pipeline architecture is unchanged from D8, but D11 ships with Symfony 7, requires PHP 8.1+, includes BigPipe as a stable core module, adds Single Directory Components (SDC) to the theme layer (stable from 10.3 / D11), supports #lazy_builder_preview, and has removed all procedural remnants like drupal_render().

Phase legend
 

① HTTP Foundation & Middleware

 

② Routing & Controller

 

③ VIEW Event & Format Negotiation

 

④ HTML Renderer

 

⑤ Renderer & Theme System

 

⑥ Caching & BigPipe