Victor Lin, your comprehensive breakdown of how HTTP Streaming can improve page performance is highly appreciated. You have effectively clarified how the traditional "buffered" approach contrasts with the "streaming" strategy and how the latter offers clear advantages in terms of parallel processing and quick client response handling.
The challenge of implementing streaming due to the need for breaking the page into independent chunks and the concern of slow backend queries is indeed an important point to consider. Your suggestion of using streaming to reduce network waterfalls is a practical solution that many developers can consider incorporating into their projects.
Your introduction of the "Early Flush" technique to send an early <head> tag is very insightful. The concept of breaking a standard response into two parts (early and late chunk) is a practical workaround to achieve streaming without waiting for the entire data to load.
The use of an "Early <head>", "Late <head>", and a "<body>" component in Airbnb's Express-based NodeJS server is a great example of practical implementation. The restructuring to render incremental chunks of content is a testament to the flexibility and adaptability of React and NodeJS to accommodate this innovative approach.
The idea of rendering a loading state when there's no data is an excellent user experience improvement. Your "Deferred Data" solution to include the data in the HTML, allowing server-side rendering and data fetching to happen in parallel, is ingenious.