O que é Backend para Frontend
Backend separado para cada frontend
BFF (Backend for Frontend)
Backend for Frontend — um padrão arquitetural onde uma camada backend separada é criada para cada tipo de cliente (web, aplicativo móvel, IoT).
Por que o BFF é necessário
| Problema sem BFF | Solução com BFF | |------------------|-----------------| | Uma API para todos os clientes | API otimizada para cada cliente | | Dados excessivos nas respostas | Apenas campos necessários para UI específica | | Lógica complexa no cliente | Agregação de dados no servidor | | Carregamento lento em móveis | Requisições e dados minimizados |
Arquitetura
[App Web] → [Web BFF] ↘
→ [Microsserviços]
[App Móvel] → [Mobile BFF] ↗
Quando usar
- Diferentes clientes — web, iOS, Android com necessidades diferentes
- Arquitetura de microsserviços — muitos serviços para agregar
- Otimização de desempenho — minimização de dados para móveis
- Equipes independentes — equipes frontend e backend separadas
Vantagens
- Otimização para cada tipo de cliente
- Deploy independente
- Isolamento de mudanças
- Código cliente simplificado
Desvantagens
- Duplicação de lógica entre BFFs
- Maior número de serviços
- Complexidade de sincronização de mudanças