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.