Escalando Aplicaciones React con Paralelismo: Patrones para UIs Multi-Hilo

This ad is not shown to multipass and full ticket holders
JSNation US
JSNation US 2025
November 17 - 20, 2025
New York, US & Online
See JS stars in the US biggest planetarium
Learn More
In partnership with Focus Reactive
Upcoming event
JSNation US 2025
JSNation US 2025
November 17 - 20, 2025. New York, US & Online
Learn more
Bookmark
Rate this content

Desbloquea todo el potencial de las aplicaciones web modernas con arquitecturas multi-hilo en React. Esta sesión explora estrategias para aprovechar Web Workers y OffscreenCanvas para paralelizar el procesamiento de datos, cálculos pesados y renderizado de UI. Descubriremos cómo crear interfaces que sean escalables y no estén restringidas por los cuellos de botella convencionales de JavaScript.

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

Shubham Gautam
Shubham Gautam
18 min
17 Jun, 2025

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Introducción al multihilo en React para experiencias de usuario más suaves mediante el uso de web workers y off-screen canvas. Herramientas para liberarse del single-threading de JavaScript con web workers y offscreen canvas. Rendimiento suave de UI con web workers, limitaciones y offscreen canvas para descargar el renderizado gráfico. Separación de diseño para prevenir problemas de hilo, descargar tareas intensivas de CPU a los trabajadores sin limitaciones de acceso al DOM. Gestionar la comunicación de WebWorker de manera efectiva con un enfoque basado en promesas para tareas. Mejorar la eficiencia de transferencia de datos con objetos transferibles y shared array buffer. Decidir cuándo utilizar técnicas de multi-hilo de manera sabia; reservar trabajadores para el procesamiento de datos y operaciones complejas. Las mejores prácticas incluyen terminar trabajadores cuando no son necesarios, perfilar aplicaciones y explorar el paralelismo futuro en el front-end para experiencias de usuario optimizadas.

1. Introducción a la Multitarea en React

Short description:

Introducción a la multitarea en React para experiencias de usuario más fluidas mediante el uso de web workers y canvas fuera de pantalla. Visión general de los desafíos enfrentados con JavaScript de un solo hilo en aplicaciones React y la necesidad de un mejor enfoque para mejorar las experiencias de usuario.

Hola a todos. Estoy realmente emocionado de profundizar en un tema que se está convirtiendo rápidamente en un elemento imprescindible en las aplicaciones web modernas, que es la multitarea en React. A medida que nuestras UIs se vuelven más ricas, tal vez piensen en tablas de datos gigantes, paneles en tiempo real y animaciones en canvas. Mantenerse en un solo hilo puede llevar a atascos, congelamientos y experiencias de usuario frustrantes. Así que hoy vamos a liberarnos de esas limitaciones utilizando web workers y canvas fuera de pantalla.

Estas son dos características del navegador que pueden ayudarnos a mantener nuestras aplicaciones increíblemente fluidas sin importar la carga de trabajo. Antes de comenzar, una rápida introducción. Soy Sribam Gautam, un ingeniero de software senior en Headout. Durante los últimos años, he trabajado en aplicaciones React a gran escala, desde flujos de reserva en tiempo real hasta UIs inmersivas con miles de usuarios activos diarios. Las técnicas que compartiré provienen de desafíos del mundo real que enfrento al empujar los límites de lo que es posible en el navegador.

Todos sabemos esto, JavaScript se ejecuta en un solo hilo. Eso significa que si algo está bloqueando el hilo, digamos un cálculo pesado, toda la aplicación se congela. Incluso operaciones simples como mapear o filtrar grandes arreglos pueden bloquear la UI. En React, es peor, porque tanto la lógica de tu componente como el renderizado ocurren en el mismo hilo. Así que echemos un vistazo a lo que eso podría significar para los usuarios. ¿Alguna vez han escrito en un cuadro de búsqueda y notaron que sus pulsaciones de teclas se retrasan? O tal vez intentaron desplazarse por una tabla masiva que simplemente se congela por un momento?

Es probable que el hilo principal esté sobrecargado. En las aplicaciones React modernas, esto puede suceder por todo tipo de razones. Tal vez ordenando tablas masivas, renderizando visualizaciones complejas, y tal vez validando formularios profundamente anidados. Pero lo que es frustrante aquí es que muchos equipos simplemente aceptan que este tipo de problemas es inevitable. Pero, honestamente, no lo es. Hay una mejor manera. Una que te brinda experiencias de usuario fluidas y receptivas sin comprometer realmente la complejidad o las características de tu aplicación. Así que vamos a profundizar.

2. Optimizando la Responsividad del Usuario con Web Workers

Short description:

Herramientas para liberarse de la naturaleza de un solo hilo de JavaScript con web workers y canvas fuera de pantalla. Utiliza web workers para hilos en segundo plano y canvas fuera de pantalla para renderizar fuera del hilo principal. Delegar cálculos pesados estratégicamente para optimizar la responsividad del usuario.

¿Entonces, qué podemos hacer sobre la naturaleza de un solo hilo de JavaScript? Afortunadamente, los navegadores modernos nos dan herramientas para liberarnos del hilo principal sin romper realmente nuestras aplicaciones. Las dos características clave de las que hablaremos hoy son web workers y canvas fuera de pantalla. Los web workers nos permiten crear hilos en segundo plano. Piénsalos como pequeños motores de JavaScript que están funcionando en paralelo, que son absolutamente perfectos para cálculos pesados. Luego, hablando de canvas fuera de pantalla. El canvas fuera de pantalla va un paso más allá. Nos permite mover el renderizado mismo del hilo principal. Eso significa animaciones y gráficos también. Pero aquí está el truco. No se trata solo de lanzar todo a un worker. Se trata de descargar estratégicamente para averiguar qué está ralentizando las cosas, qué no necesita acceso al DOM y qué se puede hacer de manera segura en segundo plano.

Nuestro objetivo aquí es asegurar que nuestro hilo principal esté enfocado en la responsividad del usuario, mientras que los hilos en segundo plano manejan todo el trabajo pesado. Así que ahora comencemos con los web workers. En su núcleo, un web worker es JavaScript ejecutándose en un hilo separado. Así es como podría verse en un componente de React. Creas un worker cuando el componente se monta. Te comunicas con él usando postMessage. Luego escuchas los resultados mediante onMessage, y siempre limpias cuando el componente se desmonta. La comunicación aquí ocurre a través de un sistema de mensajería. Enviamos datos al worker con postMessage, y recibimos resultados a través del evento onMessage. Esto realmente mantiene nuestro hilo de UI libre, incluso cuando estamos procesando grandes datos.

Así que aquí está cómo se ve el worker en sí. Lo primero a notar es que los web workers se ejecutan en un contexto completamente separado. No tienen acceso al DOM ni a los componentes de React. Escucha mensajes, ejecuta tus tareas pesadas de CPO, como transformar o filtrar datos, y luego envía los resultados de vuelta con postMessage. Piénsalo como un mini servidor que está funcionando dentro de tu navegador, que está realmente diseñado para descargar todo el trabajo pesado. Así que con esta configuración, tu aplicación se vuelve más inteligente sobre la delegación. Las tareas pesadas van al worker, mientras que tu UI se mantiene enfocada en la interacción del usuario. Ahora, veamos cuánto puede marcar la diferencia los web workers. En esta demostración, estamos calculando números primos hasta 100,000.

3. Mejorando el Rendimiento con Canvas Fuera de Pantalla

Short description:

Rendimiento suave de UI con web workers, limitaciones y canvas fuera de pantalla para descargar el renderizado gráfico. Asegura tasas de fotogramas estables, previene bloqueos y optimiza tareas pesadas. Transfiere el control del canvas a los workers para visualizaciones y animaciones en tiempo real, mejorando el rendimiento para aplicaciones interactivas.

Cuando la computación se ejecuta en el hilo principal, notarás que la tasa de fotogramas cae drásticamente. Baja de 120 FPS a solo 54 FPS. Eso significa que el desplazamiento se volverá entrecortado, los clics tendrán retraso y la UI se sentirá lenta. Ahora, cuando la misma tarea se cambia a web workers, la tasa de fotogramas se mantiene constante en 120 FPS.

Esto significa que nuestra UI seguirá siendo suave como la mantequilla. No habrá retrasos, no habrá entrecortes. Hablando del tiempo de computación, es ligeramente mejor con web workers, pero lo más importante es que no bloquea la experiencia del usuario. Aquí está la clave.

Cuando llevé esto a un millón de puntos de datos, la versión del hilo principal realmente se bloqueó en mi navegador. Mientras tanto, la versión impulsada por el worker aún completó la tarea, así que sin congelamientos, sin bloqueos, sin preocupaciones. Ahora, antes de continuar, es imperativo entender las limitaciones de los web workers. Los workers no tienen acceso al DOM, lo que significa que no pueden manipular directamente la conferencia de React o acceder al documento. También no tienen acceso a todas las APIs del navegador, y se ejecutan en un espacio de memoria completamente separado de tu aplicación principal.

4. Manejo Eficiente de Tareas con Canvas Fuera de Pantalla

Short description:

Separación de diseño para prevenir problemas de subprocesos, descargar tareas intensivas de CPU a los workers sin limitaciones de acceso al DOM. El canvas fuera de pantalla permite la descarga del renderizado gráfico a los workers para visualizaciones y animaciones en tiempo real. Implementa bucles de animación con requestAnimationFrame para un renderizado suave y utiliza comunicación basada en promesas para un manejo de tareas eficiente y robusto.

Esta separación es en realidad por diseño. Previene condiciones de carrera y otros problemas de subprocesos que vienen con la programación multihilo. Así que, significa que necesitamos ser reflexivos sobre lo que descargamos a los workers y cómo estructuramos nuestra comunicación. Pero la buena noticia aquí es que la mayoría de las operaciones intensivas en CQ que realmente se beneficiarían de ser movidas a un worker no necesitan acceso al DOM, así que esta limitación realmente se convierte en un obstáculo.

Ahora, llevémoslo un paso más allá. ¿Qué pasa si queremos descargar el renderizado gráfico? Ahí es donde entra el canvas fuera de pantalla. Este ejemplo de código que ves, en realidad muestra cómo puedes transferir el control de un elemento canvas a un worker. La magia sucede con el método de transferencia de control a offscreen, que en realidad crea un objeto de canvas fuera de pantalla que puede ser enviado a un worker.

Una vez transferido, el worker puede dibujar en este canvas sin tocar realmente el hilo principal. Eso es perfecto para visualizaciones en tiempo real, simulaciones o tal vez animaciones pesadas también. Siguiendo adelante, así es como se ve la implementación del worker para nuestro ejemplo de canvas fuera de pantalla. Así que, una vez que recibe el canvas del hilo principal, puede comenzar a renderizarlo directamente. El worker configura un bucle de animación usando request animation frame, justo como lo harías en el hilo principal.

5. Transferencia Eficiente de Datos y Gestión de Memoria

Short description:

Las operaciones de dibujo en segundo plano aseguran animaciones suaves. Gestiona la comunicación de WebWorker de manera efectiva con un enfoque basado en promesas para las tareas. Optimiza la transferencia de datos entre hilos utilizando objetos transferibles y un buffer de arreglo compartido para un acceso eficiente a la memoria.

Pero la diferencia aquí es que todas las operaciones de dibujo ocurren en el segundo plano. Así que, incluso si el hilo principal está ocupado, tus animaciones continúan ejecutándose sin problemas. Esto es realmente un cambio de juego para paneles de control, mapas, juegos y mucho más.

Así que, hay un desafío al trabajar con WebWorker, que es gestionar la comunicación de manera efectiva. El simple post message o patrón de mensaje funciona para escenarios básicos, pero en aplicaciones reales, a menudo tendrás múltiples tipos de tareas y tal vez necesites una comunicación más sofisticada.

Así que, este ejemplo muestra un enfoque basado en promesas para la comunicación con el worker. Creamos un ID único para cada tarea, configuramos un listener de una sola vez para la respuesta, y envolvemos todo en una promesa. Así que, este patrón en realidad nos permite usar async con nuestra tarea de worker y realmente hace que nuestro código sea mucho más legible.

Este patrón también incluye manejo de errores, que es crucial para aplicaciones robustas. Hablaremos de esto más tarde. Así que, si algo sale mal en este hilo, en realidad podemos capturar todo eso en nuestro código de aplicación principal. Ahora, pasemos a otro tema.

6. Técnicas Eficientes de Multihilo

Short description:

Mejora la eficiencia de la transferencia de datos con objetos transferibles y un buffer de arreglo compartido. Utiliza grupos de trabajadores para un manejo eficiente de tareas paralelas en procesadores de múltiples núcleos. Aplica el multihilo sabiamente basado en la sobrecarga de comunicación y la naturaleza de la tarea.

Hablemos sobre cómo podemos hacer que nuestra transferencia de datos entre hilos sea más eficiente. Así que, por defecto, cuando pasas datos a un WebWorker usando post message, esos datos se copian. Para cargas pequeñas, eso sigue siendo aceptable, pero una vez que comienzas a tratar con grandes conjuntos de datos, la copia se convierte en un serio cuello de botella de rendimiento. Y es tanto en términos de tiempo como de uso de memoria. Ahora, para resolver esto, tenemos dos técnicas avanzadas que optimizan drásticamente este flujo. La primera son los objetos transferibles. Los objetos transferibles en realidad permiten una transferencia de cero copias de objetos como el buffer de arreglo. Esto es increíblemente útil al trabajar con datos binarios, imágenes, o tal vez grandes arreglos numéricos. Así que, lo que sucede aquí es que, en lugar de copiar los datos, la propiedad de la memoria se transfiere al trabajador. Pero hay una trampa. El hilo principal ya no puede acceder a esa memoria una vez que ha sido transferida.

Así que, necesitas planificar en consecuencia. Luego, tenemos el buffer de arreglo compartido, que en realidad lleva esto un paso más allá. El buffer de arreglo compartido en realidad permite el uso de memoria compartida entre hilos, lo que significa que tanto el hilo principal como el hilo del trabajador pueden leer y escribir en el mismo buffer. Y este es en realidad el enfoque más eficiente para grandes conjuntos de datos que necesitan acceso simultáneo a la memoria. Sin embargo, con gran poder viene una gran responsabilidad. El acceso a la memoria compartida requiere una cuidadosa sincronización para evitar condiciones de carrera y también para asegurar la consistencia de los datos. Así que, usar estas técnicas sabiamente puede reducir drásticamente la sobrecarga de comunicación y tal vez desbloquear un rendimiento mucho mejor en aplicaciones intensivas en datos, especialmente en áreas como procesamiento en tiempo real, gráficos, y tal vez computación científica. Ahora, hablemos sobre grupos de trabajadores.

En algunas aplicaciones, podrías necesitar ejecutar tareas paralelas o tal vez aprovechar los procesadores de múltiples núcleos. Así que, en lugar de crear un nuevo trabajador para cada tarea, en realidad es más eficiente crear un grupo de trabajadores que se puedan reutilizar. El grupo de trabajadores crea un número fijo de trabajadores basado en los núcleos de CPU disponibles, luego mantiene una cola de tareas y asigna tareas a los trabajadores inactivos a medida que se vuelven disponibles. Con este enfoque, puedes distribuir eficientemente el trabajo a través de múltiples hilos sin tener que preocuparte por la sobrecarga de crear y destruir constantemente hilos de trabajadores manualmente.

7. Optimizando la Implementación de Multihilo

Short description:

Decide cuándo usar técnicas de multihilo sabiamente; reserva trabajadores para el procesamiento de datos y operaciones complejas. Evita el exceso de hilos y la sobrecarga de comunicación agrupando la transferencia de datos y terminando trabajadores innecesarios. Perfila tu aplicación, comienza con tareas pequeñas y proporciona alternativas para el soporte del navegador para optimizar patrones multihilo.

Ahora, retrocedamos y discutamos cuándo deberías usar realmente estas técnicas de multihilo. Así que, no todas las operaciones se benefician de ser trasladadas a un trabajador y siempre hay un costo de comunicación a considerar. Esta tabla proporciona un marco general para tomar estas decisiones. Las actualizaciones de la interfaz de usuario siempre deben permanecer en el hilo principal, mientras que el procesamiento de datos y los cálculos complejos son candidatos ideales para los trabajadores. Las animaciones y visualizaciones también pueden beneficiarse enormemente del canvas fuera de pantalla. El símbolo de advertencia en esta tabla indica las situaciones donde la decisión depende de lo específico.

Por ejemplo, animaciones simples podrían estar bien en el hilo principal pero las complejas deberían ser trasladadas al canvas fuera de pantalla o a un trabajador. Así que, aquí está mi regla general, si toma más de 100 milisegundos o tal vez bloquea las entradas del usuario, en realidad es un candidato para un trabajador. Ahora, hablemos sobre algunos errores comunes a evitar al implementar multihilo en tus aplicaciones de React. Primero es el exceso de hilos. No traslades operaciones a trabajadores solo porque puedes. Siempre hay una sobrecarga al configurar trabajadores y comunicarse entre hilos.

Así que, solo traslada operaciones que realmente se beneficien de estar fuera del hilo principal. Segundo, ten en cuenta la sobrecarga de comunicación. Pasar grandes cantidades de datos frecuentemente entre hilos puede anular los beneficios de rendimiento de usar trabajadores. Así que, agrupa tu comunicación y minimiza el tamaño de los datos que estás transfiriendo entre el hilo principal y los hilos de trabajadores.

8. Mejores Prácticas para el Multi-hilo en Aplicaciones Web

Short description:

Siempre termina los trabajadores cuando no son necesarios para evitar el consumo de recursos y fugas de memoria. Perfila, comienza con tareas pequeñas, implementa detección de características y monitorea el rendimiento en producción. Explora el paralelismo futuro en el front-end con shared array buffer, módulos de trabajadores, API de programador y WebGPU para experiencias de usuario optimizadas.

En tercer lugar, recuerda siempre terminar tus trabajadores cuando ya no sean necesarios. Los trabajadores olvidados continúan consumiendo recursos y pueden llevar a fugas de memoria. Finalmente, implementa un manejo de errores adecuado en tus trabajadores. Los errores de los trabajadores pueden ser silenciosos si no se capturan y reportan adecuadamente al hilo principal. Así que, eso es algo a considerar también.

Ahora, pasemos a lo siguiente. Ahora, déjame compartir algunas mejores prácticas para implementar patrones de multi-hilo en aplicaciones web. Primero, siempre perfila tu aplicación antes de optimizar. Usa la pestaña de rendimiento en Chrome DevTools para identificar qué operaciones están causando realmente el bloqueo del hilo principal. Una vez que hayas identificado esas, enfoca tus esfuerzos allí. Segundo, comienza con tareas pequeñas y aisladas al implementar trabajadores. Esto realmente facilita la depuración de problemas y medir el impacto de tus cambios. Tercero, siempre implementa detección de características y alternativas para navegadores que no soportan ciertas características. Esto es para asegurar que tu aplicación siga siendo funcional para todos los tipos de usuarios. Finalmente, monitorea tu rendimiento en producción. Esto es para asegurar que tus optimizaciones realmente beneficien a los usuarios reales. A veces, las optimizaciones que pueden parecer buenas en desarrollo o que pueden funcionar bien en desarrollo, no se traducen bien en mejoras en el mundo real. Así que, monitorear el rendimiento en producción es realmente importante.

Ahora, hablemos sobre lo que viene en el futuro del paralelismo en el front-end. Primero está el shared array buffer más Atomix, que en realidad es para desbloquear la verdadera memoria compartida entre los hilos principales y los hilos de trabajadores. Nos da un control muy detallado sobre la sincronización. Luego, tenemos módulos de trabajadores. Los módulos de trabajadores nos permiten importar y exportar dentro de los propios trabajadores. Esto realmente hace que la lógica del trabajador sea más modular, escalable y estable. Luego, tenemos la API de programador, que todavía es experimental, pero ofrece un gran control sobre colas de prioridad, colas de tareas prioritarias. Realmente nos da un control más detallado sobre la programación. Piensa en ello como el programador interno de React. Luego, tenemos WebGPU. WebGPU le da a nuestras aplicaciones de JavaScript acceso directo a la GPU para aplicaciones intensivas en cómputo como tal vez aprendizaje automático, renderizado y simulaciones. Así que, estaré feliz de responder cualquier pregunta que puedas tener sobre la implementación de multi-hilo en tus aplicaciones de React, ya sea que estés lidiando con problemas de rendimiento en aplicaciones existentes o diseñando nuevas para manejar cargas de trabajo complejas. Estos patrones pueden realmente ayudarte a crear experiencias de usuario más suaves o más receptivas. No dudes en contactarme con preguntas de seguimiento o para compartir tus propias experiencias con estas técnicas. Y con esto, vamos a concluir. ¡Muchas gracias!

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.
Composición vs Configuración: Cómo Construir Componentes Flexibles, Resilientes y a Prueba de Futuro
React Summit 2022React Summit 2022
17 min
Composición vs Configuración: Cómo Construir Componentes Flexibles, Resilientes y a Prueba de Futuro
Top Content
Today's Talk discusses building flexible, resilient, and future-proof React components using composition and configuration approaches. The composition approach allows for flexibility without excessive conditional logic by using multiple components and passing props. The context API can be used for variant styling, allowing for appropriate styling and class specification. Adding variants and icons is made easy by consuming the variant context. The composition and configuration approaches can be combined for the best of both worlds.

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.