Out-of-Order Streaming – The Future of Web Development

This ad is not shown to multipass and full ticket holders
React Advanced
React Advanced 2026
October 23 - 26, 2026
London, UK & Online
Upcoming event
React Advanced 2026
React Advanced 2026
October 23 - 26, 2026. London, UK & Online
Bookmark
Rate this content
Sentry
Promoted
Code breaks, fix it faster

Crashes, slowdowns, regressions in prod. Seer by Sentry unifies traces, replays, errors, profiles to find root causes fast.

Get started

As the pendulum of web development swings back towards the server, streaming has become increasingly popular. Specifically, out-of-order streaming.

Let's build our very own simplified version to explore how it works, what problems we are trying to solve, and what this future of web development looks like.

This talk has been presented at JSNation 2026, check out the latest edition of this JavaScript Conference.

Julian Burr
Julian Burr
26 min
15 Jun, 2026

Comments

Sign in or register to post your comment.
  • Misha Kazakov
    Misha Kazakov
    Netflix
    Very clear and useful, thank you!
Video Summary and Transcription
Exploring web performance, server-side rendering, streaming, and out-of-order streaming to enhance efficiency. Evolution from client-side to server-side rendering for better response. Balancing client-side rendering speed and server-side tasks with hydration. Optimization of rendering processes with server components. Evolution of tech stack addressing server response challenges. Improving rendering efficiency with streaming and Express. Sequential handling of asynchronous components for better user experience. Implementation of server-side loading state and out-of-order streaming for content flow replacement.

1. Understanding Web Performance

Short description:

Exploring web performance, server-side rendering, streaming, and out-of-order streaming solving limitations and enhancing efficiency. Understanding the history of web rendering, challenges, and introduction of JavaScript for dynamic applications.

Let's talk about performance and more specifically about web performance. And whenever we talk about web performance, especially these days, the conversation usually very quickly drifts towards things like server-side rendering and maybe even streaming as a way to make your rendering as fast as possible and as efficient as possible. Now in this talk, I want to explore what that landscape looks like of web rendering at the moment, how we got there, some of the limitations of traditional server-side rendering and streaming, and then specifically dive deeper into how out-of-order streaming solves some of those limitations so that hopefully by the end of it, not only do you get an idea of what out-of-order streaming is and how it works, but maybe more importantly, you will hopefully get an idea of what problems it actually solves and what the core motivation behind this technology is.

Quick disclaimer before I get started. This is not going to be a talk where I'm going to tell you, you have to use server-side rendering and out-of-order streaming, and otherwise you're stupid and you're wrong. I just want to give some details on how it works and why it might be useful so that you can go away and still make a hopefully more informed decision for yourself based on your projects and your team and all the other requirements, whatever the best solution is for you.

With that out of the way, let's get started with why. What problems does out-of-order streaming actually solve? And to understand that, we kind of need to take a quick look at the history of web rendering and how we got to where we are today. And we have to start at the very beginning, which I would call the good old days, with plain HTML and maybe some server-side language on top of that. I'm using PHP here, mainly because that's what I used when I started. It doesn't really matter. It could be any other server-side language. Fundamentally, they all do the same thing, which is generating that HTML on the fly.

So if we visualize that, we have a browser that makes a request to the server for a specific page. That server then generates HTML, returns that HTML and the browser renders it. And that's it. Much simpler times, because that HTML is purely static. We don't have any dynamic elements just yet. The response time of the server really depends on what we're doing on the server. So if we're just looking up static HTML files, that's really quick. The more we do on the server, say we connect to a database, or we're fetching data from third-party APIs, the more we do, the slower the response time gets. And that's annoying on the initial load, because you're just waiting for that HTML to come in for a long time. But it gets even more annoying as you navigate around the page, because every time you click on a link, we have to do that whole full loop again. We go back to the server, the server generates the whole HTML for the new page, returns that, and then renders that. So this is really frustrating for pages where we do more on the server. So we tried to solve that problem by introducing JavaScript. Specifically, this is kind of the jQuery era and the introduction of technologies like AJAX. So we're talking 2006-ish here. And the idea was with JavaScript, A, we can make our applications more interactive and dynamic. So now when we're requesting a page, we're still going back to the server, the server still returns static HTML, but now the server can also return a JavaScript file.

2. Evolution of Client-Side Development

Short description:

Exploring AJAX for enhanced user experience and the transition to single-page applications for interactive and dynamic content generation on the client side.

And then the browser parses and executes the JavaScript file, and that JavaScript might inject some event listeners or click handlers on buttons and things. Or some local state, and make your app more dynamic. Now this is great for an overall user experience. But to solve that long wait time when you navigate around, the introduction of AJAX really helps. AJAX allowed us to make network requests from the client even after the initial page load has already ended. Which means when we navigate to a new page, say we have a lot of static elements like a navigation and layout elements that are all the same on all the pages. We can be much more specific about what we're actually requesting from the server. And only request like a subset of the HTML. What that means is that the server response time usually is much quicker, but it also means that all of this happens on the client. So we're in full control over any kind of loading states that we might want to show while the user is waiting for that content to come in. Which massively improves the user experience on that navigation needs.

Once we introduce JavaScript in good old JavaScript fashion, we kind of get addicted and quickly went all in on that. And enter the next phase which is kind of like the single page application era. So we just plain jQuery. Then quickly we build application frameworks that helped us build the shape of normal applications with like Knockout.js. And then you start seeing the frameworks that we still know, love, and use like React, like Vue, like Angular. And the idea is that we cut out the server completely. So now when we request a page, all the server really does is return an empty shell with the documents from sharing, like an empty div. And a JavaScript file. And the idea is that that JavaScript will build up all the HTML dynamically on the client and inject it into that empty div. So once the JavaScript is all downloaded, passed, and executed, we get our application and it's immediately interactive. And all of it is interactive because all of it is built in JavaScript. So there's no barrier anymore to add event listeners, and local state, and all of that at that time. Which is great for user experience.

So this is where building much more enhanced applications and much bigger user experiences exploded because it was much easier to build them at large scale. And navigating around because all of it happens on the client is usually pretty fast. It's only limited by, do we need to go to do some network requests to fetch new data for the new page, or that kind of stuff. But just rendering new HTML for a new page is usually reasonably fast. The real downside here is that initial load, where the user is waiting not only for the server response time, then for the JavaScript to pass. And the larger and more complex those applications get, and the slower your network might be.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Scaling Up with Remix and Micro Frontends
Remix Conf Europe 2022Remix Conf Europe 2022
23 min
Scaling Up with Remix and Micro Frontends
Top Content
This talk discusses the usage of Microfrontends in Remix and introduces the Tiny Frontend library. Kazoo, a used car buying platform, follows a domain-driven design approach and encountered issues with granular slicing. Tiny Frontend aims to solve the slicing problem and promotes type safety and compatibility of shared dependencies. The speaker demonstrates how Tiny Frontend works with server-side rendering and how Remix can consume and update components without redeploying the app. The talk also explores the usage of micro frontends and the future support for Webpack Module Federation in Remix.
Understanding React’s Fiber Architecture
React Advanced 2022React Advanced 2022
29 min
Understanding React’s Fiber Architecture
Top Content
This Talk explores React's internal jargon, specifically fiber, which is an internal unit of work for rendering and committing. Fibers facilitate efficient updates to elements and play a crucial role in the reconciliation process. The work loop, complete work, and commit phase are essential steps in the rendering process. Understanding React's internals can help with optimizing code and pull request reviews. React 18 introduces the work loop sync and async functions for concurrent features and prioritization. Fiber brings benefits like async rendering and the ability to discard work-in-progress trees, improving user experience.
Thinking Like an Architect
Node Congress 2025Node Congress 2025
31 min
Thinking Like an Architect
Top Content
In modern software development, architecture is more than just selecting the right tech stack; it involves decision-making, trade-offs, and considering the context of the business and organization. Understanding the problem space and focusing on users' needs are essential. Architectural flexibility is key, adapting the level of granularity and choosing between different approaches. Holistic thinking, long-term vision, and domain understanding are crucial for making better decisions. Effective communication, inclusion, and documentation are core skills for architects. Democratizing communication, prioritizing value, and embracing adaptive architectures are key to success.
Full Stack Components
Remix Conf Europe 2022Remix Conf Europe 2022
37 min
Full Stack Components
Top Content
RemixConf EU discussed full stack components and their benefits, such as marrying the backend and UI in the same file. The talk demonstrated the implementation of a combo box with search functionality using Remix and the Downshift library. It also highlighted the ease of creating resource routes in Remix and the importance of code organization and maintainability in full stack components. The speaker expressed gratitude towards the audience and discussed the future of Remix, including its acquisition by Shopify and the potential for collaboration with Hydrogen.
The Dark Side of Micro-Frontends
React Advanced 2025React Advanced 2025
29 min
The Dark Side of Micro-Frontends
In the Talk, various key points were discussed regarding micro-front-end architecture. These included challenges with micro-intents, common mistakes in system design, the differences between micro-intents and components, granularity in software architecture, optimizing micro-front-end architecture, efficient routing and deployment strategies, edge computing strategies, global state and data sharing optimization, managing data context, governance and fitness functions, architectural testing, adaptive growth, value of micro-frontends, repository selection, repo structures, and web component usage.
The Eternal Sunshine of the Zero Build Pipeline
React Finland 2021React Finland 2021
36 min
The Eternal Sunshine of the Zero Build Pipeline
For many years, we have migrated all our devtools to Node.js for the sake of simplicity: a common language (JS/TS), a large ecosystem (NPM), and a powerful engine. In the meantime, we moved a lot of computation tasks to the client-side thanks to PWA and JavaScript Hegemony.
So we made Webapps for years, developing with awesome reactive frameworks and bundling a lot of dependencies. We progressively moved from our simplicity to complex apps toolchains. We've become the new Java-like ecosystem. It sucks.
It's 2021, we've got a lot of new technologies to sustain our Users eXperience. It's time to have a break and rethink our tools rather than going faster and faster in the same direction. It's time to redesign the Developer eXperience. It's time for a bundle-free dev environment. It's time to embrace a new frontend building philosophy, still with our lovely JavaScript.
Introducing Snowpack, Vite, Astro, and other Bare Modules tools concepts!

Workshops on related topic

AI on Demand: Serverless AI
DevOps.js Conf 2024DevOps.js Conf 2024
163 min
AI on Demand: Serverless AI
Top Content
Featured WorkshopFree
Nathan Disidore
Nathan Disidore
In this workshop, we discuss the merits of serverless architecture and how it can be applied to the AI space. We'll explore options around building serverless RAG applications for a more lambda-esque approach to AI. Next, we'll get hands on and build a sample CRUD app that allows you to store information and query it using an LLM with Workers AI, Vectorize, D1, and Cloudflare Workers.
High-performance Next.js
React Summit 2022React Summit 2022
50 min
High-performance Next.js
Workshop
Michele Riva
Michele Riva
Next.js is a compelling framework that makes many tasks effortless by providing many out-of-the-box solutions. But as soon as our app needs to scale, it is essential to maintain high performance without compromising maintenance and server costs. In this workshop, we will see how to analyze Next.js performances, resources usage, how to scale it, and how to make the right decisions while writing the application architecture.
Model Context Protocol (MCP) Deep Dive: 2-Hour Interactive Workshop
AI Coding Summit 2025AI Coding Summit 2025
86 min
Model Context Protocol (MCP) Deep Dive: 2-Hour Interactive Workshop
Workshop
Stepan Suvorov
Stepan Suvorov
Join a focused 2-hour session covering MCP's purpose, architecture, hands-on server implementation, and future directions. Designed for developers and system architects aiming to integrate contextual data with ML models effectively. Agenda:- Introduction & Why MCP? Key challenges MCP solves and core benefits.- Architecture Deep Dive: components, interactions, scalability principles. - Building Your Own MCP Server: guided walkthrough with code snippets and best practices; live demo or code review.- Future of MCP Developments: potential enhancements, emerging trends, real-world scenarios.
Key Takeaways:- Clear understanding of MCP's rationale.- Insight into design patterns and scaling considerations.- Practical steps to implement a prototype server.- Awareness of upcoming trends and how to apply MCP in projects. 
From Async Chaos to Deterministic React: Hands-On State Machine Architecture for Real-Time Systems
React Summit 2026React Summit 2026
86 min
From Async Chaos to Deterministic React: Hands-On State Machine Architecture for Real-Time Systems
Workshop
Rajni Gediya
Rajni Gediya
Mentorship available
As React apps move into real-time systems — streaming data, AI workflows, hardware devices — async complexity grows quickly. Reducers and scattered async handlers often work at first, but once concurrency and lifecycle interruptions enter the picture, things start to break in subtle ways.
In this hands-on workshop, we’ll take a fragile async React setup and redesign it into a deterministic, state-machine-driven architecture. The goal isn’t to teach a specific library, but to show how explicit state modeling makes complex systems easier to reason about and more reliable in production.
Node's Concurrency With the Strength of a Bull With BullMQ
Node Congress 2026Node Congress 2026
95 min
Node's Concurrency With the Strength of a Bull With BullMQ
Workshop
Edy Silva
Douglas Marques
2 authors
Node's concurrent nature is powerful already, but often we need to push work out of the main server for several reasons. In this work, we will explore a few scenarios in which work is cleverly pushed to another Node process to resolve.
Once we use a queue to distribute workloads, we need to identify the nature of the work to be done. For either I/O- or CPU-intensive work, the first is already perfectly covered by a single Node.js process; we will need to tweak the worker setup to match the available resources and throughput.