Trabalho · XP Inc.
Arsenal: um micro-framework para micro-frontends
Construído na XP Inc. sobre o Webpack Module Federation, para muitos times entregarem partes do mesmo produto de forma independente. As entregas ficaram cerca de 40% mais rápidas.
- Papel
- Software Architect
- Período
- dez 2020 – mar 2022
- Stack
- Webpack Module Federation · React · Gatsby · Jest · Lerna
A ideia
O Module Federation permite que uma aplicação carregue código que outro time construiu e publicou separadamente. O Arsenal transformou esse mecanismo num pequeno framework com convenções, para cada time não reinventar carregamento, comunicação e estado compartilhado.
Quatro pacotes
- core: carrega módulos, oferece canais pub/sub ou fila, um estado global observável e logs padronizados.
- react: interfaces e hooks de ciclo de vida para apps React se conectarem ao core.
- scripts: build, testes, servidor de desenvolvimento e configuração por um arquivo arsenal.json.
- docs: o site de documentação, feito com Gatsby.
Engenharia
Um monorepo com Lerna e Jest em todos os pacotes. O objetivo era uma consistência sem graça: todo micro-frontend começava, registrava logs e conversava com os outros do mesmo jeito.
Resultado
Os times passaram a entregar suas partes de forma independente, e as entregas ficaram cerca de 40% mais rápidas.