React vs. Tiempo Real: Construye Funciones en Tiempo Real Sin Luchar Contra el Framework

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

La mayoría de las aplicaciones de React tratan el estado como la única fuente de verdad. Pero, ¿qué sucede cuando el tiempo mismo vive fuera de React?

Mientras construíamos un motor de línea de tiempo de múltiples pistas para producción, descubrimos que el transporte de Web Audio, no el estado de React, tenía que convertirse en la línea de tiempo canónica. En esta charla, exploraremos cómo diseñamos un gráfico de audio basado en canales y un editor renderizado en lienzo alrededor de un reloj externo de alta precisión, permitiendo la sincronización determinista de audio y medios generados externamente, renderizado a 60fps y actualizaciones de estado sin recarga sin permitir que la reconciliación de React interfiera con las garantías de tiempo real.

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

Shubham Gautam
Shubham Gautam
20 min
16 Jun, 2026

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Shubham, un ingeniero de software senior en Headout, discute los desafíos cuando React se encuentra con sistemas en tiempo real mientras trabaja en una herramienta interna para puertas de audio. La flexibilidad de React choca con los horarios fijos de los sistemas en tiempo real, causando problemas como el desplazamiento de audio. Redefinir el papel de React en los sistemas en tiempo real mejora la suavidad del cabezal de reproducción al cambiar la arquitectura. React hace la transición a un observador, utilizando un reloj externo para la estabilidad. Las optimizaciones en la arquitectura de renderizado de React incluyen renderizado en capas para un rendimiento mejorado de la interfaz de usuario. La retroalimentación en tiempo real pasa por alto React para respuestas instantáneas, siendo la invalidación de caché crítica en los sistemas en tiempo real.

1. React and Real-Time Systems

Short description:

Shubham, senior software engineer at Headout, trabaja en DeX Studio, una herramienta interna para crear puertas de audio. Construyendo un editor de plantillas estilo puerta dentro de él, encontrando desafíos cuando React se encuentra con sistemas en tiempo real. Discutiendo el modo Fourier, el cambio arquitectónico, los patrones resultantes y las compensaciones. La historia comienza con problemas de pistas de audio causados por las limitaciones arquitectónicas del framework React. Las características del diseño del ciclo de renderizado de React, como la renderización concurrente, la división de tiempo y el suspense, proporcionan flexibilidad en la ejecución del trabajo.

Hola a todos, soy Shubham. Soy un ingeniero de software senior en Headout. Trabajo en DeX Studio, que es una herramienta interna para crear puertas de audio. Entonces, los creadores lo usan para escribir guiones, editar, y publicar puertas. Y recientemente, comenzamos a construir algo mucho más ambicioso dentro de él, que es un editor de plantillas estilo puerta. Entonces, piensa en reproducciones multipista, scrubbing, feeds, un cabezal de reproducción en lienzo a 60fps. Básicamente, todas las cosas que esperarías de un editor de audio de escritorio, excepto que este se ejecuta dentro de una aplicación React en el navegador.

Y mientras lo construía, pasé mucho tiempo enfrentándome a este problema muy específico, que es lo que sucede cuando React se encuentra con sistemas en tiempo real. Y de eso también trata esta charla, que es lo que sucede cuando le pides a un motor de reconciliación que se comporte como un reloj, y más importante, cómo diseñar tu camino alrededor de esa pelea. Así que, durante los próximos 15 a 20 minutos, voy a recorrer cuatro cosas. Primero, el modo Fourier exacto que teníamos. Segundo, el cambio arquitectónico que lo solucionó. Tercero, los patrones que realmente surgen de ese modelo. Y finalmente, discutiremos las compensaciones, porque esta arquitectura absolutamente funciona, pero viene con costos reales.

Así que, ahora, aquí es donde realmente comenzó esta historia para mí. Quiero que imagines tres pistas de audio, un cabezal de reproducción rojo moviéndose suavemente a través de la pantalla. Se supone que debe deslizarse a 60 fotogramas por segundo, pero simplemente no lo hace. Está temblando, el audio entre las pistas se está desplazando, y cada scrubbing está introduciendo un nuevo retraso. Y la parte extraña era que esto no era un problema de hardware. Tampoco era un problema de empaquetador en una red. Esto era React 19 ejecutándose en una máquina rápida, y aquí, el framework estaba luchando contra nosotros a nivel arquitectónico. En retrospectiva, el error era obvio. Estamos pidiendo a React que sea un reloj en tiempo real, y no lo es. Nunca fue diseñado para ser uno. Y hoy, quiero mostrarte qué hacer en su lugar. Así que, vamos a sumergirnos. Si hablamos de React, el ciclo de renderizado de React es eventualmente consistente por diseño. Y honestamente, eso es realmente una característica, no un defecto. Así que, si piensas en cosas como la renderización concurrente, la división de tiempo, las transiciones, el suspense, e incluso el nuevo límite de actividad, todos hacen el mismo intercambio. React se da a sí mismo la libertad de decidir cuándo ocurre el trabajo. Es el framework el que elige el momento exacto.

2. React's Flexibility and Real-Time Systems

Short description:

La flexibilidad de React para manejar cargas de manera fluida choca con los requisitos de horarios fijos de los sistemas en tiempo real. Surge un desajuste cuando el trabajo diferido de React entra en conflicto con la inmediatez de los sistemas en tiempo real, causando problemas como el desplazamiento y el jitter del audio. Implementar un editor DOS 10 en una aplicación React expuso desafíos con el jitter del cabezal de reproducción y el desplazamiento de las pistas de audio debido a los mecanismos de agrupamiento de React.

Y esa flexibilidad es exactamente cómo React se mantiene tan fluido bajo carga, incluso en lugar de colapsar. Pero honestamente, los sistemas en tiempo real no pueden hacer ese intercambio. Y cuando digo en tiempo real, no solo me refiero al audio. La reproducción de audio es obviamente uno de los ejemplos, pero el mismo problema aparece en todas partes. Así que, piensa en un cabezal de reproducción de Canvas a 60 hertz. Piensa en un ticker financiero que actualiza precios en vivo. Piensa en un bucle de control de robots. Todos estos sistemas tienen una cosa en común. Dependen de un reloj que avanza en un horario fijo. Y eso crea una desajuste fundamental.

Así que, si piensas en el modelo de React, el modelo de React puede diferir, reordenar o incluso interrumpir el trabajo. Pero los sistemas en tiempo real no tienen esa flexibilidad. Así que, cuando combinas estos dos modelos ingenuamente juntos, React eventualmente gana. Esto se debe a que es React quien decide cuándo se están comprometiendo tus actualizaciones. Y debido a esto, los usuarios experimentan ese desajuste directamente. Lo escuchan como desplazamientos de audio, lo sienten como retrasos en C, lo ven como fotogramas caídos, e incluso movimientos con jitter. Esta brecha entre dos modelos, entre eventualmente consistente y debe suceder ahora, ese es todo el problema que vamos a discutir.

Así que, veamos cuál es el problema exacto con el que nos encontramos. Así que, estábamos construyendo un editor DOS 10 dentro de una aplicación React. Así que, piensa en tres pistas de audio, un cabezal de reproducción de Canvas corriendo a 60 FPS. Teníamos scrubbing, teníamos fade, teníamos clic para ver. Y al principio, lo implementamos de la manera obvia. Teníamos un use state que estaba llevando un seguimiento del tiempo actual y también teníamos un set interval que estaba tomando cada 16 milisegundos para mantener al menos 60 fotogramas por segundo para trabajar en una pantalla de 60 FPS. Y React estaba volviendo a renderizar la UI en cada actualización. Pero en realidad falló de tres maneras muy específicas. Primero, el cabezal de reproducción comenzó a tener jitter. Esto estaba sucediendo porque React estaba agrupando algunas de nuestras actualizaciones de 60 FPS juntas para priorizar algún otro trabajo. Así que, nuestro cabezal de reproducción comenzó a saltarse cosas. Segundo, el audio entre pistas comenzó a desplazarse. Esto estaba sucediendo porque cada componente de pista básicamente se suscribía al estado de React de manera independiente.

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

Escalando con Remix y Micro Frontends
Remix Conf Europe 2022Remix Conf Europe 2022
23 min
Escalando con Remix y 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.
Entendiendo la Arquitectura Fiber de React
React Advanced 2022React Advanced 2022
29 min
Entendiendo la Arquitectura Fiber de React
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.
Componentes de Full Stack
Remix Conf Europe 2022Remix Conf Europe 2022
37 min
Componentes de Full Stack
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.
El Lado Oscuro de los Micro-Frontends
React Advanced 2025React Advanced 2025
29 min
El Lado Oscuro de los 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.

Workshops on related topic

IA a demanda: IA sin servidor
DevOps.js Conf 2024DevOps.js Conf 2024
163 min
IA a demanda: IA sin servidor
Top Content
Featured WorkshopFree
Nathan Disidore
Nathan Disidore
En esta masterclass, discutimos los méritos de la arquitectura sin servidor y cómo se puede aplicar al espacio de la IA. Exploraremos opciones para construir aplicaciones RAG sin servidor para un enfoque más lambda-esque a la IA. A continuación, nos pondremos manos a la obra y construiremos una aplicación CRUD de muestra que te permite almacenar información y consultarla utilizando un LLM con Workers AI, Vectorize, D1 y Cloudflare Workers.
Masterclass de alto rendimiento Next.js
React Summit 2022React Summit 2022
50 min
Masterclass de alto rendimiento Next.js
Workshop
Michele Riva
Michele Riva
Next.js es un marco convincente que facilita muchas tareas al proporcionar muchas soluciones listas para usar. Pero tan pronto como nuestra aplicación necesita escalar, es esencial mantener un alto rendimiento sin comprometer el mantenimiento y los costos del servidor. En este masterclass, veremos cómo analizar el rendimiento de Next.js, el uso de recursos, cómo escalarlo y cómo tomar las decisiones correctas al escribir la arquitectura de la aplicación.
Model Context Protocol (MCP) Deep Dive: 2-Hour Interactive Masterclass
AI Coding Summit 2025AI Coding Summit 2025
86 min
Model Context Protocol (MCP) Deep Dive: 2-Hour Interactive Masterclass
Workshop
Stepan Suvorov
Stepan Suvorov
Únete a una sesión enfocada de 2 horas que cubre el propósito de MCP, su arquitectura, implementación práctica de servidores y direcciones futuras. Diseñado para desarrolladores y arquitectos de sistemas que buscan integrar datos contextuales con modelos de ML de manera efectiva. Agenda:- Introducción & ¿Por qué MCP? Desafíos clave que MCP resuelve y beneficios principales.- Profundización en la Arquitectura: componentes, interacciones, principios de escalabilidad. - Construyendo tu propio Servidor MCP: recorrido guiado con fragmentos de código y mejores prácticas; demostración en vivo o revisión de código.- Futuro de los Desarrollos de MCP: potenciales mejoras, tendencias emergentes, escenarios del mundo real.
Puntos Clave:- Comprensión clara del razonamiento detrás de MCP.- Perspectiva sobre patrones de diseño y consideraciones de escalado.- Pasos prácticos para implementar un servidor prototipo.- Conciencia de las tendencias futuras y cómo aplicar MCP en proyectos. 
Del Caos Asíncrono a React Determinista: Arquitectura Práctica de Máquinas de Estados para Sistemas en Tiempo Real
React Summit 2026React Summit 2026
86 min
Del Caos Asíncrono a React Determinista: Arquitectura Práctica de Máquinas de Estados para Sistemas en Tiempo Real
Workshop
Rajni Gediya
Rajni Gediya
Mentorship available
A medida que las aplicaciones de React avanzan hacia sistemas en tiempo real — transmisión de datos, flujos de trabajo de IA, dispositivos de hardware — la complejidad asíncrona crece rápidamente. Los reducers y los manejadores asíncronos dispersos a menudo funcionan al principio, pero una vez que la concurrencia y las interrupciones del ciclo de vida entran en escena, las cosas comienzan a fallar de maneras sutiles.
En esta masterclass práctica, tomaremos una configuración asíncrona frágil de React y la rediseñaremos en una arquitectura determinista impulsada por máquinas de estados. El objetivo no es enseñar una biblioteca específica, sino mostrar cómo el modelado explícito de estados hace que los sistemas complejos sean más fáciles de razonar y más confiables en producción.
Concurrencia de Node Con la Fuerza de un Toro Con BullMQ
Node Congress 2026Node Congress 2026
95 min
Concurrencia de Node Con la Fuerza de un Toro Con BullMQ
Workshop
Edy Silva
Douglas Marques
2 authors
La naturaleza concurrente de Node ya es poderosa, pero a menudo necesitamos sacar trabajo del servidor principal por varias razones. En este trabajo, exploraremos algunos escenarios en los que el trabajo se empuja inteligentemente a otro proceso de Node para resolver.
Una vez que usamos una cola para distribuir cargas de trabajo, necesitamos identificar la naturaleza del trabajo a realizar. Para trabajos intensivos en I/O o CPU, el primero ya está perfectamente cubierto por un solo proceso de Node.js; necesitaremos ajustar la configuración del trabajador para que coincida con los recursos disponibles y el rendimiento.