The BigPipe module is included in Drupal 8 core since Drupal 8.1. It made a step towards becoming non-experimental in Drupal 8.2: instead of an alpha it became marked as a beta. And it became stable in Drupal 8.3!
The BigPipe technique was invented at Facebook.
It is strongly recommended to also enable the Dynamic Page Cache module that is included with Drupal 8 core.
How it works
- During rendering, the personalized parts are turned into placeholders.
- By default, Drupal 8 uses the Single Flush strategy (aka "traditional") for replacing the placeholders. i.e. we don't send a response until we've replaced all placeholders.
- The BigPipe module introduces a new strategy, that allows us to flush the initial page first, and then stream the replacements for the placeholders.
- This results in hugely improved front-end/perceived performance (watch the 40-second screencast above).
Faster with zero configuration! BigPipe is able to make things faster automatically thanks to Drupal 8's improved render pipeline & render API, and in particular thanks to the cacheability metadata and auto-placeholdering.
Relation to Page Cache & Dynamic Page Cache modules in Drupal 8 core
- Page Cache (
page_cache): no relation to BigPipe.
- Dynamic Page Cache (
dynamic_page_cache): if a page is cached in the Dynamic Page Cache, BigPipe is able to send the main content much faster. It contains exactly the things that BigPipe still needs to do
Related contributed modules
- Sessionless BigPipe: Accelerates Page Cache misses using the BigPipe technique.
- BigPipe demo: Demonstrates how BigPipe speeds up pages containing uncacheable/personalized parts.
- The Drupal 8 render pipeline
- Cacheability of render arrays
- Dynamic Page Cache module
- Video: The Best Features of Drupal 8 - Bigpipe Caching
- Podcast: Using BigPipe to Achieve Incredible Site Speed in Drupal 8 with Wim Leers
- Podcast: "No More Stale Content" Drupal 8 Caching and Big Pipe with Wim Leers