mais lidos
Life at Nu
Conheça a sede do Nubank em Pinheiros, São Paulo/Brasil jan 11
Design
A nova aparência do Nubank: conheça nossa nova logo maio 17
Culture & Values
Como os valores e a cultura da Nu moldam os produtos que criamos ago 7
Carreiras
Reunimos grandes mentes de diversas origens que permitem a discussão e o debate e melhoram a resolução de problemas.
Saiba mais sobre nossas carreiras



Você está enfrentando desafios ao escalar seu front-end para atender a um número crescente de usuários? Com o aumento da complexidade das aplicações web modernas, estratégias como micro front-ends, monorepositórios, gerenciamento de estados globais e otimização de cache são essenciais.
Neste artigo, exploramos as melhores práticas para escalar aplicações front-end, discutindo como implementar micro front-ends, gerenciar versões em monorepositórios, aplicar estratégias eficazes de cache e manter estados globais de forma eficiente.
Descubra como o Nubank está superando os desafios de escalabilidade no front-end e como você pode aplicar essas abordagens para construir interfaces de usuário ágeis, responsivas e fáceis de manter.
O desafio da escala
Empresas como o Nubank enfrentam desafios únicos. Com mais de 100 milhões de clientes no Brasil, México e Colômbia, lidar com sistemas distribuídos de larga escala não é apenas uma necessidade, mas uma obrigação. A complexidade de gerenciar transações como o PIX, garantir a estabilidade dos serviços e proporcionar uma experiência consistente ao usuário requer soluções inovadoras.
Além disso, trabalhar com tecnologias avançadas como Clojure e Datomic—cujo desenvolvimento é influenciado por engenheiros dentro do próprio Nubank—adiciona camadas adicionais de complexidade e oportunidade. Essas tecnologias não são apenas ferramentas; são parte integral da estratégia de escalabilidade e inovação contínua.
Conheça nossas oportunidades
Micro front-ends: dividindo para conquistar
A arquitetura de micro front-ends emergiu como uma solução para muitos dos desafios enfrentados por grandes equipes de desenvolvimento. Mas o que exatamente são micro front-ends?
O que são (e o que não são) micro front-ends
Micro front-ends são uma extensão do conceito de microserviços para o front-end. Eles permitem que diferentes equipes desenvolvam, implementem e mantenham partes distintas da interface do usuário de forma independente.
Isso significa que cada equipe pode trabalhar em seu próprio ritmo, escolher suas próprias tecnologias (até certo ponto) e implantar atualizações sem impactar o sistema como um todo.
É importante destacar que micro front-ends não são:
Benefícios dos micro front-ends
Custos e considerações
Estratégias de implementação
Existem várias abordagens para implementar micro front-ends:
Composição no lado do cliente
É a abordagem mais comum, onde a integração dos micro front-ends ocorre no navegador do usuário. Tecnologias como Web Components, Module Federation (Webpack 5) e frameworks como Single SPA facilitam essa composição.
Composição no servidor ou CDN
A montagem dos micro front-ends ocorre antes de chegar ao cliente, seja no servidor ou na CDN. Ferramentas e técnicas como Edge Side Includes (ESI) podem ser utilizadas.
Comunicação entre micro front-ends
A comunicação eficiente é essencial. Recomenda-se o uso de:
Controle de versão em monorepositórios
Gerenciar versões em um monorepositório pode ser um desafio, especialmente quando múltiplas equipes estão trabalhando em diferentes partes do sistema. Aqui estão algumas práticas para lidar com isso:
Versionamento individual de pacotes
Ferramentas como Lerna ou Nx permitem que você gerencie versões individuais de pacotes dentro de um monorepositório. Isso possibilita que cada equipe controle as versões de seus próprios componentes ou módulos, mantendo a independência e facilitando a coordenação.
Evitando submódulos git
Embora submódulos Git possam parecer uma solução, eles geralmente introduzem complexidade adicional. Em vez disso, utilizar workspaces do NPM ou Yarn pode simplificar o gerenciamento de dependências internas.
Benefícios do monorepositório
Estratégias de cache para carregamento de bundles
A eficiência no carregamento de recursos é crucial para o desempenho da aplicação. Estratégias de cache bem implementadas podem melhorar significativamente a experiência do usuário.
Cache de recursos compartilhados
Ao usar tecnologias como Module Federation, é possível compartilhar dependências comuns entre diferentes micro front-ends, evitando downloads redundantes. Para isso:
Cache no nível de CDN
Utilizar uma Content Delivery Network (CDN) permite que recursos estáticos sejam entregues mais rapidamente aos usuários, aproveitando o cache distribuído.
Cache no navegador
Gerenciando estados globais em aplicações host
Manter um estado global consistente em uma aplicação composta por múltiplos micro front-ends é um desafio.
Estratégias recomendadas
Boas práticas
Padronização e equipes de plataforma
Enquanto micro front-ends abordam a escalabilidade técnica, a padronização de código e a existência de equipes de plataforma são cruciais para a escalabilidade humana das equipes de desenvolvimento.
O papel das equipes de plataforma
Importância da padronização
Evitando complexidade desnecessária
Leis organizacionais aplicadas ao código
A Lei de Conway afirma que a estrutura de um sistema reflete a estrutura da organização que o desenvolve. Portanto, alinhar a arquitetura técnica com a organização das equipes não é apenas benéfico, mas essencial.
Como começar
Conclusão
Escalar front-ends de forma eficaz requer uma combinação de soluções técnicas e organizacionais. Arquiteturas de micro front-ends oferecem um caminho para lidar com a complexidade técnica, enquanto a padronização e as equipes de plataforma abordam os desafios humanos de colaboração em larga escala.
No Nubank, entendemos que a inovação contínua e a adaptabilidade são essenciais para oferecer a melhor experiência aos nossos clientes. Seja adotando tecnologias avançadas ou reestruturando nossas equipes, estamos comprometidos em evoluir e enfrentar os desafios de escala do mundo moderno.
Quer fazer parte desse desafio? Estamos sempre em busca de talentos apaixonados por tecnologia e inovação para construirmos, juntos, o futuro roxo!
Para mais insights como esses, assista a gravação do meetup de Engenharia:
Conheça nossas oportunidades