A tecnologia Backend-for-Frontend simplifica o desenvolvimento de serviços com os quais muitos clientes diferentes trabalham simultaneamente: computadores, smartphones e tablets com todos os sistemas operacionais possíveis.
A abordagem Backend-for-Frontend (BFF) foi desenvolvida pela SoundCloud. O chefe de desenvolvimento do SoundCloud, Phil Calçado, descreveu o BFF em 2015 como um estágio evolutivo natural para produtos de TI modernos.
No passado, no mundo analógico, os sistemas corporativos eram usados apenas pelas próprias empresas. Quanto mais a digitalização e o omnicanal se desenvolvem, mais o foco muda da infraestrutura corporativa para o exterior. Os clientes passaram a comprar produtos online e em smartphones, os parceiros de negócios passaram a interagir com a empresa por meio de plataformas web. Tornou-se importante para as empresas construir uma arquitetura que permitisse esse acesso aos recursos corporativos.
Os desenvolvedores começaram a construir APIs para que serviços de TI de terceiros pudessem se conectar à infraestrutura. A desvantagem dessa tecnologia é que ela oferece a todos o mesmo conjunto de recursos. Se você precisa limitar a quantidade de tráfego em smartphones e oferecer aos usuários de tablets seu próprio método de entrada de dados, as dificuldades podem começar.
A tarefa do SoundCloud era ainda mais difícil - a empresa precisava se integrar com desenvolvedores terceirizados para que eles pudessem incorporar o player em seus sites. Para fazer isso, a API deve interagir com qualquer plataforma pronta para uso e, a cada atualização, a equipe precisa se certificar de que a revisão não quebra todas essas integrações. Na prática, isso não é realista.
Foi assim que nasceu o conceito de Backend-for-Frontend - um serviço leve que fica mais próximo do front-end do que do back-end.
Recursos de melhor amigo
A palavra chave é "leve", a lista de recursos do BFF é muito menor que a da API:
Trabalhe com microsserviços de produtos e receba dados deles.
Formate esses dados para que sejam processados corretamente no front-end.
Envie dados para o front-end.
BFF: , Android, iOS .. – :
API , .
, , API.
.
BFF – , Netflix Flickr. Microsoft IBM. True Engineering.
BFF
. RabbitMQ, .
API, . , , , . , , BFF, . Rabbit- .
, API. -, Rabbit . BFF Data Provider, .
, API – BFF , , . API , – BFF .
, BFF
Um serviço BFF deve ser leve - esta é sua principal diferença de uma API. Não há necessidade de escrever lógica de negócios complexa no código, construir um banco de dados, etc. A comunicação simples deve ser uma prioridade.
Como dissemos, um produto pode ter vários serviços de BFF para clientes diferentes. Eles inevitavelmente se duplicarão em alguma parte, mas você precisa ter certeza de que isso não vai além do razoável, caso contrário, você gastará recursos extras para apoiá-los.
Você precisa entender que BFF é algo como um tradutor entre o back-end e o front-end. Portanto, segurança, tolerância a falhas e monitoramento precisam ser construídos adicionalmente.