Mas leido
Building Stories
Modo Rua: Redefiniendo el desarrollo de aplicaciones mediante iteración centrada en el usuario Ago 23
Building Stories
NuStories: Adaptación de productos para clientes fanáticos en varios países Oct 30
Culture & Values
Cómo los valores y la cultura de Nu dan forma a los productos que creamos Ago 7
Carreras
Reunimos a grandes mentes de diversos orígenes que permiten la discusión y el debate y mejoran la resolución de problemas.
Conoce más sobre nuestras carreras



¿Estás enfrentando desafíos al escalar tu front-end para atender a un número creciente de usuarios? Con el aumento de la complejidad de las aplicaciones web modernas, estrategias como micro front-ends, monorepositorios, gestión de estados globales y optimización de caché son esenciales.
En este artículo, exploramos las mejores prácticas para escalar aplicaciones front-end, discutiendo cómo implementar micro front-ends, gestionar versiones en monorepositorios, aplicar estrategias efectivas de caché y mantener estados globales de forma eficiente.
Descubre cómo Nubank está superando los desafíos de escalabilidad en el front-end y cómo puedes aplicar estos enfoques para construir interfaces de usuario ágiles, responsivas y fáciles de mantener.
El Desafío de la Escala
Empresas como Nubank enfrentan desafíos únicos. Con más de 100 millones de clientes en Brasil, México y Colombia, manejar sistemas distribuidos a gran escala no es solo una necesidad, sino una obligación. La complejidad de gestionar transacciones como PIX, garantizar la estabilidad de los servicios y proporcionar una experiencia consistente al usuario requiere soluciones innovadoras.
Además, trabajar con tecnologías avanzadas como Clojure y Datomic—cuyo desarrollo es influenciado por ingenieros dentro del propio Nubank—añade capas adicionales de complejidad y oportunidad. Estas tecnologías no son solo herramientas; son parte integral de nuestra estrategia de escalabilidad e innovación continua.
Descubre las oportunidades
Micro Front-Ends: Dividir para Conquistar
La arquitectura de micro front-ends ha emergido como una solución para muchos de los desafíos que enfrentan los grandes equipos de desarrollo. Pero, ¿qué son exactamente los micro front-ends?
Qué Son (y Qué No Son) los Micro Front-Ends
Los micro front-ends son una extensión del concepto de microservicios al front-end. Permiten que diferentes equipos desarrollen, implementen y mantengan partes distintas de la interfaz de usuario de forma independiente.
Esto significa que cada equipo puede trabajar a su propio ritmo, elegir sus propias tecnologías (hasta cierto punto) e implementar actualizaciones sin impactar el sistema en su conjunto.
Es importante destacar que los micro front-ends no son:
Beneficios de los Micro Front-Ends
Costos y Consideraciones
Estrategias de Implementación
Existen varias aproximaciones para implementar micro front-ends:
Composición en el Lado del Cliente
Es el enfoque más común, donde la integración de los micro front-ends ocurre en el navegador del usuario. Tecnologías como Web Components, Module Federation (Webpack 5) y frameworks como Single SPA facilitan esta composición.
Composición en el Servidor o CDN
El ensamblaje de los micro front-ends ocurre antes de llegar al cliente, ya sea en el servidor o en la CDN. Herramientas y técnicas como Edge Side Includes (ESI) pueden ser utilizadas.
Comunicación entre Micro Front-Ends
La comunicación eficiente es esencial. Se recomienda el uso de:
Control de Versión en Monorepositorios
Gestionar versiones en un monorepositorio puede ser un desafío, especialmente cuando múltiples equipos están trabajando en diferentes partes del sistema. Aquí hay algunas prácticas para manejar esto:
Versionado Individual de Paquetes
Herramientas como Lerna o Nx permiten gestionar versiones individuales de paquetes dentro de un monorepositorio. Esto posibilita que cada equipo controle las versiones de sus propios componentes o módulos, manteniendo la independencia y facilitando la coordinación.
Evitando Submódulos Git
Aunque los submódulos Git pueden parecer una solución, generalmente introducen complejidad adicional. En su lugar, utilizar workspaces de NPM o Yarn puede simplificar la gestión de dependencias internas.
Beneficios del Monorepositorio
Estrategias de Caché para la Carga de Bundles
La eficiencia en la carga de recursos es crucial para el rendimiento de la aplicación. Estrategias de caché bien implementadas pueden mejorar significativamente la experiencia del usuario.
Caché de Recursos Compartidos
Al usar tecnologías como Module Federation, es posible compartir dependencias comunes entre diferentes micro front-ends, evitando descargas redundantes. Para lograr esto:
Caché a Nivel de CDN
Utilizar una Red de Distribución de Contenido (CDN) permite que recursos estáticos sean entregados más rápidamente a los usuarios, aprovechando el caché distribuido.
Caché en el Navegador
Gestionando Estados Globales en Aplicaciones Host
Mantener un estado global consistente en una aplicación compuesta por múltiples micro front-ends es un desafío.
Estrategias Recomendadas
Buenas Prácticas
Estandarización y Equipos de Plataforma
Mientras que los micro front-ends abordan la escalabilidad técnica, la estandarización de código y la existencia de equipos de plataforma son cruciales para la escalabilidad humana de los equipos de desarrollo.
El Papel de los Equipos de Plataforma
Importancia de la Estandarización
Evitando Complejidad Innecesaria
Leyes Organizacionales Aplicadas al Código
La Ley de Conway afirma que la estructura de un sistema refleja la estructura de la organización que lo desarrolla. Por lo tanto, alinear la arquitectura técnica con la organización de los equipos no es solo beneficioso, sino esencial.
Cómo Comenzar
Conclusión
Escalar front-ends de forma efectiva requiere una combinación de soluciones técnicas y organizacionales. Las arquitecturas de micro front-ends ofrecen un camino para manejar la complejidad técnica, mientras que la estandarización y los equipos de plataforma abordan los desafíos humanos de la colaboración a gran escala.
En Nubank, entendemos que la innovación continua y la adaptabilidad son esenciales para ofrecer la mejor experiencia a nuestros clientes. Ya sea adoptando tecnologías avanzadas o reestructurando nuestros equipos, estamos comprometidos a evolucionar y enfrentar los desafíos de escalabilidad del mundo moderno.
¿Quieres ser parte de este desafío? ¡Siempre estamos buscando talentos apasionados por la tecnología y la innovación para construir juntos el futuro morado!
Para más información como esta, mira la grabación del meetup de Ingeniería.
Descubre las oportunidades