SlideShare una empresa de Scribd logo
1 de 34
Como BFF (Backend for
Frontend) pode ser seu
melhor amigo para lidar
com diferentes frontends
Cristiano
Arquiteto Software
@crisaltmann
2
Deivid
Desenvolvedor Web
@deividhf
3
Micro serviços
Vamos falar um pouco sobre essa
buzzword...
1.
Micro serviços
5
6
Deploy independente
Baixo acoplamento
Escalabilidade
Horizontal
Escolha tecnologias
Tempo de negócio
Times independentes
Evolução
tecnológica
Resiliente
SERVIÇOS
Unidades interoperáveis que podem
facilmente ser reutilizados e
compartilhados entre aplicações e
empresas
7
Definindo serviços
com DDD
▪ Orientado ao domínio
▪ Contextos delimitados
8
Conta
Corrente
Pessoa
9
Dificuldades
Algumas dificuldades na adoção desta
arquitetura...
2.
Design
▪ Dificuldade de manter a
coesão do domínio do
serviço
▪ Necessidades UI
11
Rede
▪ Comunicação sujeita a
falhas
▪ Chatty
12
Dados
▪ Contratos dos serviços
não levam em
consideração o Front
End
13
Multi UI
▪ Infinidade de Front ends
consumindo os serviços
14
E o BFF….
3.
BFF
Um componente responsável por
conectar as necessidades específicas de
Front end com os serviços.
16
17
Características
Agregação
Agregar dados de
diferentes servicos.
Adaptação
Adaptar o contrato do
serviço à necessidade do
front end.
Sem regras de negócios
As regras de negócio
devem estar nos serviços.
18
Quantos
BFFs?
▪ Adequar à distribuição
dos times
▪ BFFs por experiência
19
Vantagens
Algumas vantagens do uso do BFF
4.
Autonomia
do front end
▪ Mock dos dados no BFF
▪ Não depender do back
end para testar
integração
21
Domínios
▪ Coesos
▪ Não precisam se adaptar
às necessidades de front
ends
22
Chamadas
▪ Latência
▪ Rede
23
Teste A/B
24
Controle
versão
▪ Migração versões de
serviços
25
Diferentes
protocolos
▪ Permite que a
comunicação com a UI
seja desacoplada do
backend
26
Desvantagens
Alguns problemas que a adoção do
pattern nos traz
5.
Mais um
componente...
28
Ponto único de
falha
29
Conclusão
Aprendizados sobre o uso do pattern
6.
Mantivemos
sistemas
coesos
▪ Graças ao BFF
31
Tecnologias
▪ Devem ser simples
▪ Sem verbosidade
32
Habilidades
▪ Complexidades do back
end levados ao front
33
Obrigado!
34

Más contenido relacionado

La actualidad más candente

Plano Diretor de Tecnologia da Informação
Plano Diretor de Tecnologia da InformaçãoPlano Diretor de Tecnologia da Informação
Plano Diretor de Tecnologia da InformaçãoHelio Rebouças
 
Métodos Ágeis e Scrum - Introdução
Métodos Ágeis e Scrum - IntroduçãoMétodos Ágeis e Scrum - Introdução
Métodos Ágeis e Scrum - IntroduçãoYuri Morais
 
Site Reliability Engineering - Descubra a nova era para (Infraestrutura|Opera...
Site Reliability Engineering - Descubra a nova era para (Infraestrutura|Opera...Site Reliability Engineering - Descubra a nova era para (Infraestrutura|Opera...
Site Reliability Engineering - Descubra a nova era para (Infraestrutura|Opera...Pery Lemke
 
Minicurso Fundamentos da Análise de Negócio 3.0
Minicurso Fundamentos da Análise de Negócio 3.0Minicurso Fundamentos da Análise de Negócio 3.0
Minicurso Fundamentos da Análise de Negócio 3.0Rildo (@rildosan) Santos
 
[MTC 2021] Tests smells: aquele cheirinho de que algo não está bom no seu cód...
[MTC 2021] Tests smells: aquele cheirinho de que algo não está bom no seu cód...[MTC 2021] Tests smells: aquele cheirinho de que algo não está bom no seu cód...
[MTC 2021] Tests smells: aquele cheirinho de que algo não está bom no seu cód...minastestingconference
 
Introdução ao MongoDB em 30 slides
Introdução ao MongoDB em 30 slidesIntrodução ao MongoDB em 30 slides
Introdução ao MongoDB em 30 slidesDerek Willian Stavis
 
Engenharia de Software 100% Agil (SCRUM, FDD e XP)
Engenharia de Software 100% Agil (SCRUM, FDD e XP)Engenharia de Software 100% Agil (SCRUM, FDD e XP)
Engenharia de Software 100% Agil (SCRUM, FDD e XP)Rildo (@rildosan) Santos
 
Uma introdução à SRE - Site reliability engineering
Uma introdução à SRE - Site reliability engineeringUma introdução à SRE - Site reliability engineering
Uma introdução à SRE - Site reliability engineeringThiago Ferreira
 
Site (Service) Reliability Engineering
Site (Service) Reliability EngineeringSite (Service) Reliability Engineering
Site (Service) Reliability EngineeringMark Underwood
 
Métricas de Software
Métricas de SoftwareMétricas de Software
Métricas de Softwareelliando dias
 
Introdução ao desenvolvimento de páginas web estáticas
Introdução ao desenvolvimento de páginas web estáticasIntrodução ao desenvolvimento de páginas web estáticas
Introdução ao desenvolvimento de páginas web estáticasSusana Oliveira
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de SoftwareLeinylson Fontinele
 
design patterns - introdução
design patterns - introduçãodesign patterns - introdução
design patterns - introduçãoelliando dias
 
Engenharia de Software Baseada em Componentes
Engenharia de Software Baseada em ComponentesEngenharia de Software Baseada em Componentes
Engenharia de Software Baseada em Componenteselliando dias
 

La actualidad más candente (20)

Enabling The DevOps Culture At Organization
Enabling The DevOps Culture At OrganizationEnabling The DevOps Culture At Organization
Enabling The DevOps Culture At Organization
 
Plano Diretor de Tecnologia da Informação
Plano Diretor de Tecnologia da InformaçãoPlano Diretor de Tecnologia da Informação
Plano Diretor de Tecnologia da Informação
 
Scrum Product Owner
Scrum Product OwnerScrum Product Owner
Scrum Product Owner
 
Aula 2 - Processos de Software
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos de Software
 
Métodos Ágeis e Scrum - Introdução
Métodos Ágeis e Scrum - IntroduçãoMétodos Ágeis e Scrum - Introdução
Métodos Ágeis e Scrum - Introdução
 
Site Reliability Engineering - Descubra a nova era para (Infraestrutura|Opera...
Site Reliability Engineering - Descubra a nova era para (Infraestrutura|Opera...Site Reliability Engineering - Descubra a nova era para (Infraestrutura|Opera...
Site Reliability Engineering - Descubra a nova era para (Infraestrutura|Opera...
 
Minicurso Fundamentos da Análise de Negócio 3.0
Minicurso Fundamentos da Análise de Negócio 3.0Minicurso Fundamentos da Análise de Negócio 3.0
Minicurso Fundamentos da Análise de Negócio 3.0
 
Scrum Experience
Scrum ExperienceScrum Experience
Scrum Experience
 
[MTC 2021] Tests smells: aquele cheirinho de que algo não está bom no seu cód...
[MTC 2021] Tests smells: aquele cheirinho de que algo não está bom no seu cód...[MTC 2021] Tests smells: aquele cheirinho de que algo não está bom no seu cód...
[MTC 2021] Tests smells: aquele cheirinho de que algo não está bom no seu cód...
 
Clean Architecture
Clean ArchitectureClean Architecture
Clean Architecture
 
Introdução ao MongoDB em 30 slides
Introdução ao MongoDB em 30 slidesIntrodução ao MongoDB em 30 slides
Introdução ao MongoDB em 30 slides
 
Engenharia de Software 100% Agil (SCRUM, FDD e XP)
Engenharia de Software 100% Agil (SCRUM, FDD e XP)Engenharia de Software 100% Agil (SCRUM, FDD e XP)
Engenharia de Software 100% Agil (SCRUM, FDD e XP)
 
Uma introdução à SRE - Site reliability engineering
Uma introdução à SRE - Site reliability engineeringUma introdução à SRE - Site reliability engineering
Uma introdução à SRE - Site reliability engineering
 
Site (Service) Reliability Engineering
Site (Service) Reliability EngineeringSite (Service) Reliability Engineering
Site (Service) Reliability Engineering
 
Métricas de Software
Métricas de SoftwareMétricas de Software
Métricas de Software
 
Método Kanban - Introdução ao sistema ágil adaptativo
Método Kanban - Introdução ao sistema ágil adaptativoMétodo Kanban - Introdução ao sistema ágil adaptativo
Método Kanban - Introdução ao sistema ágil adaptativo
 
Introdução ao desenvolvimento de páginas web estáticas
Introdução ao desenvolvimento de páginas web estáticasIntrodução ao desenvolvimento de páginas web estáticas
Introdução ao desenvolvimento de páginas web estáticas
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de Software
 
design patterns - introdução
design patterns - introduçãodesign patterns - introdução
design patterns - introdução
 
Engenharia de Software Baseada em Componentes
Engenharia de Software Baseada em ComponentesEngenharia de Software Baseada em Componentes
Engenharia de Software Baseada em Componentes
 

Similar a Como bff (backend for frontend) pode ser seu melhor amigo para lidar com diferentes frontends

Microservices - ALM Roadshow 2015
Microservices - ALM Roadshow 2015Microservices - ALM Roadshow 2015
Microservices - ALM Roadshow 2015Renato Groff
 
Microservices - Canal .NET Dev Weekend
Microservices - Canal .NET Dev WeekendMicroservices - Canal .NET Dev Weekend
Microservices - Canal .NET Dev WeekendRenato Groff
 
Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...
Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...
Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...Isaac de Souza
 
Novas oportunidades de negócios com 5G e nuvem
Novas oportunidades de negócios com 5G e nuvemNovas oportunidades de negócios com 5G e nuvem
Novas oportunidades de negócios com 5G e nuvemEricsson Latin America
 
Utilizando a nuvem para proteger o mercado financeiro com segurança, agilidad...
Utilizando a nuvem para proteger o mercado financeiro com segurança, agilidad...Utilizando a nuvem para proteger o mercado financeiro com segurança, agilidad...
Utilizando a nuvem para proteger o mercado financeiro com segurança, agilidad...Amazon Web Services LATAM
 
Vida longa para SOA com microservices
Vida longa para SOA com microservicesVida longa para SOA com microservices
Vida longa para SOA com microservicesFábio Rosato
 
O desafio de sustentar centenas de servicos
O desafio de sustentar centenas de servicosO desafio de sustentar centenas de servicos
O desafio de sustentar centenas de servicosGraziella Bonizi
 
Introdução ao IBM Bluemix - Silvia Matsuora (Solution IT Architect - Ecosyste...
Introdução ao IBM Bluemix - Silvia Matsuora (Solution IT Architect - Ecosyste...Introdução ao IBM Bluemix - Silvia Matsuora (Solution IT Architect - Ecosyste...
Introdução ao IBM Bluemix - Silvia Matsuora (Solution IT Architect - Ecosyste...Victor Cavalcante
 
Do mapa mental para Serviços de Dados até APIs
Do mapa mental para Serviços de Dados até APIsDo mapa mental para Serviços de Dados até APIs
Do mapa mental para Serviços de Dados até APIsWSO2
 
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017Renato Groff
 
Micro frontend de um jeito que você nunca viu
Micro frontend de um jeito que você nunca viuMicro frontend de um jeito que você nunca viu
Micro frontend de um jeito que você nunca viuWagner Souza
 
A importância de DDD e o Domain Model na construção de APIs!
A importância de DDD e o Domain Model na construção de APIs!A importância de DDD e o Domain Model na construção de APIs!
A importância de DDD e o Domain Model na construção de APIs!Isaac de Souza
 
Integração de software solucao e estilo
Integração de software   solucao e estiloIntegração de software   solucao e estilo
Integração de software solucao e estiloGrupoAlves - professor
 
Habilidades necessárias para integrar aplicativos e dados
Habilidades necessárias para integrar aplicativos e dadosHabilidades necessárias para integrar aplicativos e dados
Habilidades necessárias para integrar aplicativos e dadosJeison Barros
 

Similar a Como bff (backend for frontend) pode ser seu melhor amigo para lidar com diferentes frontends (20)

Microservices
MicroservicesMicroservices
Microservices
 
Microservices - ALM Roadshow 2015
Microservices - ALM Roadshow 2015Microservices - ALM Roadshow 2015
Microservices - ALM Roadshow 2015
 
Microservices - Canal .NET Dev Weekend
Microservices - Canal .NET Dev WeekendMicroservices - Canal .NET Dev Weekend
Microservices - Canal .NET Dev Weekend
 
Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...
Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...
Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...
 
Novas oportunidades de negócios com 5G e nuvem
Novas oportunidades de negócios com 5G e nuvemNovas oportunidades de negócios com 5G e nuvem
Novas oportunidades de negócios com 5G e nuvem
 
Utilizando a nuvem para proteger o mercado financeiro com segurança, agilidad...
Utilizando a nuvem para proteger o mercado financeiro com segurança, agilidad...Utilizando a nuvem para proteger o mercado financeiro com segurança, agilidad...
Utilizando a nuvem para proteger o mercado financeiro com segurança, agilidad...
 
Vida longa para SOA com microservices
Vida longa para SOA com microservicesVida longa para SOA com microservices
Vida longa para SOA com microservices
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
O desafio de sustentar centenas de servicos
O desafio de sustentar centenas de servicosO desafio de sustentar centenas de servicos
O desafio de sustentar centenas de servicos
 
Introdução ao IBM Bluemix - Silvia Matsuora (Solution IT Architect - Ecosyste...
Introdução ao IBM Bluemix - Silvia Matsuora (Solution IT Architect - Ecosyste...Introdução ao IBM Bluemix - Silvia Matsuora (Solution IT Architect - Ecosyste...
Introdução ao IBM Bluemix - Silvia Matsuora (Solution IT Architect - Ecosyste...
 
DDD e Restful SOA
DDD e Restful SOADDD e Restful SOA
DDD e Restful SOA
 
Do mapa mental para Serviços de Dados até APIs
Do mapa mental para Serviços de Dados até APIsDo mapa mental para Serviços de Dados até APIs
Do mapa mental para Serviços de Dados até APIs
 
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
 
JUGVale 14 - 14/09/2019
JUGVale 14 - 14/09/2019JUGVale 14 - 14/09/2019
JUGVale 14 - 14/09/2019
 
Micro frontend de um jeito que você nunca viu
Micro frontend de um jeito que você nunca viuMicro frontend de um jeito que você nunca viu
Micro frontend de um jeito que você nunca viu
 
A importância de DDD e o Domain Model na construção de APIs!
A importância de DDD e o Domain Model na construção de APIs!A importância de DDD e o Domain Model na construção de APIs!
A importância de DDD e o Domain Model na construção de APIs!
 
Integração de software solucao e estilo
Integração de software   solucao e estiloIntegração de software   solucao e estilo
Integração de software solucao e estilo
 
Integração de software 2
Integração de software 2Integração de software 2
Integração de software 2
 
Front end architecture
Front end architectureFront end architecture
Front end architecture
 
Habilidades necessárias para integrar aplicativos e dados
Habilidades necessárias para integrar aplicativos e dadosHabilidades necessárias para integrar aplicativos e dados
Habilidades necessárias para integrar aplicativos e dados
 

Más de Cristiano Altmann

Más de Cristiano Altmann (6)

[Meetup ms] Kafka Streams
[Meetup ms] Kafka Streams[Meetup ms] Kafka Streams
[Meetup ms] Kafka Streams
 
Kafka Streams
Kafka StreamsKafka Streams
Kafka Streams
 
Apache kafka
Apache kafkaApache kafka
Apache kafka
 
Kubernetes + netflix oss
Kubernetes + netflix ossKubernetes + netflix oss
Kubernetes + netflix oss
 
Guday netflix oss
Guday netflix ossGuday netflix oss
Guday netflix oss
 
Netflix oss
Netflix ossNetflix oss
Netflix oss
 

Como bff (backend for frontend) pode ser seu melhor amigo para lidar com diferentes frontends

Notas del editor

  1. Unidades interoperáveis que podem facilmente ser reutilizados e compartilhados entre aplicações e empresas.
  2. Unidades interoperáveis que podem facilmente ser reutilizados e compartilhados entre aplicações e empresas.