Compartir es cuidar: Mejorando el rendimiento de Micro-frontends con el intercambio de dependencias

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

Acompáñame mientras exploramos el lado oscuro de los micro-frontends: la duplicación de dependencias. ¿Alguna vez te has preguntado qué sucede con el tamaño total de tu bundle cuando divides un gran SPA en docenas de micro-frontends? En esta sesión compartiremos nuestro viaje compartiendo dependencias entre micro-frontends en monday.com para reducir el tamaño total del bundle en la página y aumentar el rendimiento.

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

Sahar Brodbeker
Sahar Brodbeker
22 min
16 Jun, 2025

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Saar Becker discute los desafíos de los micro-frontends en monday.com, centrándose en el tamaño del bundle debido a la carga de React múltiples veces. La solución de intercambio en caliente v1 se introduce para abordar este problema compartiendo dependencias de manera eficiente. Las estrategias incluyen proporcionar la misma versión de React, gestionar dependencias compartidas a través de intercambios en caliente y optimizar la construcción de bundles creando bundles con nombres compuestos. La charla profundiza en revisar soluciones de intercambio en caliente, resolver problemas de dependencias indirectas y optimizar la construcción de bundles de dependencias para la preparación de producción.

1. Exploring Micro-Frontends Challenges

Short description:

Saar Becker recorre el viaje de monday.com en el intercambio de dependencias de micro-frontends. Rápido repaso sobre micro-frontends: dividir una gran aplicación de una sola página en aplicaciones más pequeñas. Los desafíos incluyen el tamaño del paquete debido a la carga de React varias veces.

Hola a todos. Mi nombre es Saar Becker, y hoy voy a guiarles a través de nuestro viaje en monday.com con el intercambio de dependencias entre nuestros micro-frontends. Vamos a repasar todos los desafíos que enfrentamos, todas las soluciones que intentamos y todas las lecciones que aprendimos en el camino. Pero antes de sumergirnos en los detalles de todo, hagamos un rápido repaso sobre qué son los micro-frontends.

Entonces, los micro-frontends son un patrón arquitectónico de front-end muy popular en el cual tomamos una gran aplicación de una sola página y la dividimos en aplicaciones más pequeñas. Como en este caso, tenemos el servicio A, el servicio B y el servicio C, cada uno siendo mantenido individualmente y desplegado a producción, y esto permite una mejor independencia para los equipos, un mejor alcance de nuestro sistema y un mejor aislamiento.

Pero con todas las cosas buenas que la arquitectura de front-end nos ofrece, también presenta algunos desafíos clave. Principalmente entre ellos está el tamaño del paquete. Así que lo que pueden ver aquí es que cuando teníamos una aplicación de una sola página, cargábamos React en la página solo una vez, porque existía en nuestro paquete solo una vez. Básicamente teníamos un paquete.

2. Addressing Micro-Frontends Bundle Size

Short description:

React cargado múltiples veces en micro-frontends lleva a un mayor tamaño de paquete y peor rendimiento. Compartir dependencias para mejorar el rendimiento; apuntando a la conformidad y al intercambio eficiente. Solución inicial v1 llamada solución de intercambio en caliente para un mejor rendimiento en micro-frontends.

solo una vez, porque existía en nuestro paquete solo una vez. Básicamente teníamos un paquete. Ahora, cuando tenemos micro-frontends, React está básicamente empaquetado en cada uno de nuestros micro-frontends, lo que significa que se carga en la página tantas veces como la cantidad de micro-frontends que tenemos. Así que, en este caso, cargamos React en la página tres veces. Y, hablando en términos generales, un tamaño de paquete más grande en general en la página, cuantos más activos descargamos y más cosas cargamos en la memoria, resulta en un peor rendimiento. Resulta en tiempos de red más largos, resulta en una huella de memoria más grande de nuestras pestañas, y eso es malo.

Así que, solo para poner esto en perspectiva con algunos números, cuando cargamos tres instancias de React en la página, añadimos alrededor de 15 kilobytes de código a la página. Y si cargamos, digamos, más micro-frontends con un paquete más grande, como MobX, por ejemplo, añadimos alrededor de 630 kilobytes a la página, lo cual no es nada despreciable, y afecta el rendimiento de la pestaña, como mencionamos. Entonces, ¿qué podemos hacer al respecto? Como habrán adivinado por el nombre de esta charla y la introducción, podemos compartir, porque compartir es cuidar. Así que nos propusimos crear una especificación de cómo vamos a compartir dependencias entre nuestros micro-frontends para permitir un mejor rendimiento en general en nuestra aplicación. Así que, primero y ante todo, queremos compartir tanto como sea posible, bajo la suposición de que cuantas más cosas compartamos, mejor será el rendimiento en general. Dicho esto, queremos asegurarnos de que estamos cumpliendo con la demanda de los micro-frontends, básicamente que estamos cumpliendo con diciembre, para que nada se rompa en la página.

Sí, eso es algo bastante grande, diría yo. Y eso incluye los dos puntos. Así que primero, queremos tener una instancia de una dependencia por versión principal. Así que digamos que tenemos dos micro-frontends, cada uno de ellos está usando una medida diferente de React, uno está usando React 16, y otro está usando React 18.

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.
De Monolito a Micro-Frontends
React Advanced 2022React Advanced 2022
22 min
De Monolito a Micro-Frontends
Top Content
Microfrontends are considered as a solution to the problems of exponential growth, code duplication, and unclear ownership in older applications. Transitioning from a monolith to microfrontends involves decoupling the system and exploring options like a modular monolith. Microfrontends enable independent deployments and runtime composition, but there is a discussion about the alternative of keeping an integrated application composed at runtime. Choosing a composition model and a router are crucial decisions in the technical plan. The Strangler pattern and the reverse Strangler pattern are used to gradually replace parts of the monolith with the new application.

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.
Micro Frontends with Module Federation and React
JSNation Live 2021JSNation Live 2021
113 min
Micro Frontends with Module Federation and React
Top Content
Workshop
Alex Lobera
Alex Lobera
¿Alguna vez trabajaste en una aplicación monolítica de Next.js? Yo sí, y escalar una gran aplicación de React para que muchos equipos puedan trabajar simultáneamente no es fácil. Con micro frontends, puedes dividir un monolito de frontend en piezas más pequeñas para que cada equipo pueda construir y desplegar de manera independiente. En este masterclass, aprenderás cómo construir grandes aplicaciones de React que escalen utilizando micro frontends.
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.
Microfrontends con Module Federation y Angular
JSNation Live 2021JSNation Live 2021
113 min
Microfrontends con Module Federation y Angular
Workshop
Manfred Steyer
Manfred Steyer
Cada vez más empresas eligen Microfrontends. Sin embargo, no son fáciles de implementar. Afortunadamente, Module Federation introducido con webpack 5 ha iniciado un cambio crucial de dirección.
En este masterclass interactivo, aprenderás de Manfred Steyer, Angular GDE y Colaborador de Confianza en el equipo de Angular, cómo planificar e implementar arquitecturas de Microfrontend con Angular y el nuevo Module Federation de webpack. Hablaremos sobre compartir bibliotecas y conceptos avanzados como manejar desajustes de versión, Module Federation dinámico e integración en monorepos.
Después de los ejercicios individuales, tendrás un estudio de caso que podrás utilizar como plantilla para tus proyectos. Este masterclass te ayuda a evaluar las opciones individuales para tus proyectos.
Prerrequisitos:Debes tener algo de experiencia con Angular.