Did you know that often the majority of the time spent generating a HTML page is spent on a few dynamic/uncacheable/personalized parts? Pages are only sent to the client after everything is rendered. Well, what if Drupal could start sending a page before it’s fully finished? What if Drupal could let the browser start downloading CSS, JS, and images, and even make the majority of the page available for interaction while Drupal generates those uncacheable parts? Good news — it can!
This is where Drupal 8’s improved architecture comes in: it allows us to do Facebook BigPipe-style rendering. You can now simply install the BigPipe module for Drupal 8.0 and see the difference for yourself. It has been included in Drupal 8.1 as an optional module (still marked experimental for now).
In this session, we will cover:
- The ideas behind BigPipe
- How to use BigPipe on your Drupal site
- How Drupal is able to do this (high-level technical information)
- How you can make your code BigPipe-compatible (technical details)
- What else is made possible thanks to the improved architecture in Drupal 8 (ESI etc.), without any custom code
(We start with the basics/fundamentals, and gradually go deeper into how it works. Even non-Drupal people should be able to follow along.)
When I delivered this talk at DrupalCamp Ghent, Peter Decuyper did an amazing sketchnote: