@wscld
Published on

Por que usar BFF?

Authors
  • avatar
    Name
    Wesley Caldas
    Twitter

Por que usar BFF?

No mundo em constante evolução da arquitetura de software, oferecer a melhor experiência ao usuário muitas vezes significa adaptar o backend às necessidades únicas de cada frontend. É aí que entra o Backend for Frontend (BFF).

O que é Backend for Frontend (BFF)?

Backend for Frontend é um padrão de design onde um serviço de backend dedicado é criado para um aplicativo frontend específico. Em vez de ter um único backend genérico atendendo a todos os tipos de clientes (web, mobile, desktop), cada frontend possui seu próprio backend que atua como um mediador entre a interface de usuário e os serviços principais do backend.

Por que usar um BFF?

Aplicações frontend diferentes geralmente precisam de diferentes formatos de dados, níveis de detalhe e comportamentos. Um BFF oferece:

  • APIs personalizadas por plataforma: Respostas adaptadas para web, mobile ou outros clientes.
  • Código frontend simplificado: O frontend não precisa lidar com transformações complexas de dados.
  • Melhor desempenho: Reduz o excesso ou a falta de dados nas requisições.
  • Arquitetura mais limpa: Separação clara entre apresentação e lógica de negócio.

Exemplo real: Plataforma de E-commerce

Imagine que você está construindo uma plataforma de e-commerce com um aplicativo web e um aplicativo mobile.

  • O aplicativo web exibe detalhes ricos dos produtos, avaliações, itens relacionados e filtros dinâmicos.
  • O aplicativo mobile precisa apenas de informações básicas dos produtos e navegação rápida, devido ao espaço de tela e banda limitados.

Utilizando o padrão BFF:

  • O Web BFF pode buscar dados detalhados dos produtos, recomendações personalizadas e conteúdo estendido de avaliações de vários serviços backend, formatando tudo para o uso na web.
  • O Mobile BFF busca apenas os campos essenciais do produto (ex.: nome, preço, miniatura) e comprime a resposta para melhorar o desempenho.

Cada BFF atende exatamente às necessidades de seu frontend, melhorando tanto o desempenho quanto a experiência dos desenvolvedores.

Como Funciona

Veja um fluxo simplificado:

  1. Um usuário interage com um frontend (ex.: app mobile).
  2. O frontend envia requisições para seu BFF correspondente.
  3. O BFF agrega e transforma os dados vindos dos serviços backend.
  4. O BFF envia uma resposta adaptada para aquele frontend.

Quando não usar um BFF

Apesar dos benefícios, nem sempre o uso de BFF é necessário. Evite um BFF quando:

  • Sua aplicação é pequena e possui poucos clientes frontend.
  • Os frontends conseguem consumir eficientemente uma API compartilhada.
  • Adicionar um BFF aumentaria a complexidade sem necessidade.

Os desenvolvedores frontend devem construir o BFF?

Em muitas equipes, sim, os desenvolvedores frontend são os mais indicados para construir e manter o BFF.

Por quê?

  • Entendimento profundo da UI: Sabem exatamente como os dados serão usados.
  • Maior velocidade de iteração: Não precisam esperar o time backend fazer ajustes pequenos.
  • Linguagem e stack compartilhados: Muitos BFFs são escritos em JavaScript ou TypeScript (ex.: usando Node.js), que já são familiares aos desenvolvedores frontend.

Mas é importante ficar atento a:

  • Escopo excessivo: O BFF não deve assumir lógicas de negócio pesadas.
  • Segurança: Garantir validação adequada, tratamento de erros e autenticação.
  • Coordenação com o time backend: Especialmente em contratos de API e consistência de dados.

Uma equipe bem estruturada pode tratar o BFF como uma extensão do frontend, de responsabilidade dos mesmos desenvolvedores, o que leva a um processo de entrega mais ágil e eficiente.


O padrão Backend for Frontend é uma maneira poderosa de otimizar a comunicação entre os frontends e os serviços backend. Ele melhora a produtividade dos desenvolvedores, a experiência do usuário e a escalabilidade do sistema — especialmente em ambientes com múltiplas plataformas.

Se você está construindo aplicativos para múltiplas plataformas, considere implementar BFFs para manter sua arquitetura limpa e seus frontends eficientes.