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.
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
- 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