Arquitetura selecionada
Module Federation
Module Federation permite compor aplicações a partir de bundles remotos. É uma técnica comum para microfrontends, especialmente quando cada time publica partes independentes da interface.
Estrutura de pastas
Navegue pelos arquivos para ver como a arquitetura aparece no código.
export const config = {
remotes: {
checkout: 'http://localhost:4201/remoteEntry.js',
},
};Prós
- Permite deploy independente de partes da aplicação.
- Compartilha dependências em runtime quando bem configurado.
- Ajuda times grandes a dividir responsabilidades.
Contras
- Configuração e debug de runtime são mais complexos.
- Contratos quebrados podem falhar só em integração.
- Versionamento de dependências compartilhadas exige cuidado.
Quando usar
- Microfrontends com times e releases independentes.
- Produtos que precisam compor módulos remotos.
- Cenários em que independência operacional justifica complexidade.
Exemplo real
Um portal corporativo cujo shell carrega módulos remotos de RH, financeiro, compras e atendimento.
Cenário prático
O shell resolve a rota `/checkout` e baixa o remote `checkout` em runtime, permitindo que o time de checkout publique sem rebuild do shell.
Como implementar
- Configure remotes e exposes com contratos explícitos.
- Compartilhe dependências críticas como Angular em singleton quando fizer sentido.
- Crie fallback para falha de carregamento remoto e monitore erros de runtime.
Cuidado comum
Ignorar compatibilidade de versões entre shell e remotes pode causar falhas difíceis de reproduzir.