Abílio Azevedo.

BFF - Backend For Frontend

Cover Image for BFF - Backend For Frontend
Abílio Azevedo
Abílio Azevedo

Implementando um Padrão de Backend para Frontend

O padrão de backend para frontend (BFF) se tornou popular nos últimos anos como uma maneira de construir aplicativos web escaláveis e manuteníveis. Um BFF fornece uma camada de API personalizada que se situa entre o frontend e os serviços de backend.

O que é um Backend para Frontend?

Um backend para frontend é uma camada que se situa entre o frontend e os serviços de backend. Ele é projetado para lidar com solicitações de estruturas ou plataformas frontend específicas. O BFF abstrai as APIs de backend de uso geral para fornecer uma API personalizada para cada cliente frontend.

Alguns benefícios importantes de usar um BFF incluem:

  • Personalização - O BFF pode transformar respostas de backend em um formato otimizado para cada frontend. Isso evita sobrecarregar o código do frontend (Over fetching e Over requesting)

  • Segurança - O BFF atua como uma camada de segurança, protegendo o backend de solicitações indesejadas. Ele pode implementar autenticação, autorização e limitação de taxa.

  • Desempenho - O BFF pode armazenar solicitações em cache e realizar colapso de solicitações para otimizar o desempenho para o frontend.

  • Separação de preocupações - Os serviços de backend se concentram na lógica de negócios, enquanto o BFF se concentra em interfacear com os frontends. Essa separação torna os backends e frontends mais fáceis de entender e manter.

  • Evolução independente - Os serviços de backend e clientes frontend podem evoluir de forma independente sem afetar um ao outro, fazendo alterações na camada BFF.

Implementando um BFF

Existem várias abordagens para implementar um BFF:

  • Funções serverless - Funções como Serviço como AWS Lambda podem lidar com solicitações e executar lógicas personalizadas para cada frontend.

  • API gateway - Um gateway de API é colocado na frente dos serviços de backend e pode transformar, proteger e otimizar solicitações.

  • Servidor BFF dedicado - Construir um aplicativo BFF dedicado, geralmente usando Node e Express, para lidar com solicitações de frontend.

  • Microsserviços - Cada BFF pode ser implantado como um microsserviço independente para lidar com um ou mais frontends.

A implementação deve se concentrar em:

  • Autenticação e autorização
  • Personalização de respostas para o frontend
  • Cache e colapso de solicitações
  • Políticas de limitação de taxa
  • Registro, monitoramento e análise

Testes adequados são fundamentais para garantir que o BFF interaja de forma confiável tanto com os clientes frontend quanto com os serviços backend à medida que mudam de forma independente.

Sem BFF Com BFF
Admin website BFFs

Conclusão

O padrão de backend para frontend é útil para aplicativos web e mobile modernos com diversos frontends. Implementar um BFF bem projetado fornece benefícios de desempenho, segurança e manutenibilidade. No entanto, ele introduz complexidade adicional que deve ser gerenciada cuidadosamente.

Referências

https://samnewman.io/patterns/architectural/bff/#

https://www.sensedia.com.br/post/utilizacao-de-graphql-como-implementacao-do-padrao-bff


Mais posts

Cover Image for Trabalhe 4 horas por semana

Trabalhe 4 horas por semana

**Trabalhe 4 Horas por Semana** é um guia revolucionário para escapar da rotina das 9 às 5, automatizar sua renda e viver a vida nos seus próprios termos. O autor best-seller Tim Ferriss compartilha estratégias inovadoras para terceirização, trabalho remoto, design de estilo de vida e construção de negócios automatizados que geram renda passiva. Aprenda como se juntar aos "Novos Ricos", que aproveitam o tempo e a mobilidade em vez de trocar tempo por dinheiro. Este livro influente transformou a forma como milhões de pessoas abordam o equilíbrio entre trabalho e vida na era digital.

Abílio Azevedo
Abílio Azevedo
Cover Image for A psicologia do Dinheiro

A psicologia do Dinheiro

Morgan Housel oferece insights valiosos sobre a gestão financeira e tomada de decisões. O autor enfatiza que o sucesso financeiro depende mais do comportamento do que da inteligência ou conhecimento técnico. Housel destaca a importância da visão de longo prazo e da resiliência diante da volatilidade do mercado, encorajando a forcamos na sustentabilidade em vez de ganhos de curto prazo.

NewsLetter

Eu enviarei o conteúdo postado aqui no blog. Sem Spam =)

Engenheiro de software experiente, formado em Engenharia Elétrica, com mais de 10 anos de experiência prática na construção de aplicativos móveis, web e back-end robustos e escaláveis em vários projetos, principalmente no setor de fintech. Mobile (React Native), Web (React e Next.JS) e Backend (Node.JS, PHP e DJANGO). Meu objetivo é criar produtos que agreguem valor às pessoas. - © 2024, Abílio Azevedo