Overview

Last updated on
23 March 2017

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.

BigPipe demonstration

How it works

  1. During rendering, the personalized parts are turned into placeholders.
  2. 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.
  3. The BigPipe module introduces a new strategy, that allows us to flush the initial page first, and then stream the replacements for the placeholders.
  4. This results in hugely improved front-end/perceived performance (watch the 40-second screencast above).

Features

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

Issue queue

http://drupal.org/project/issues/drupal?component=big_pipe.module

See also