API com padrão arquitetural BFF e microserviços com Clean Architecture.
o BFF atua como uma interface simples entre o frontend e os microsserviços.
- Separação das responsabildiades;
- Fácil manutenção;
- Melhor tratamento de erros no frontend;
- Vários tipos de dispositivos podem chamar o back-end em paralelo;
- Melhora a segurança;
- Propriedade compartilhada de componentes pela equipe.
- Aumenta a latência;
BFF é semelhante a um servidor proxy entre o cliente e outras APIs externas, serviços, etc. Se a solicitação tiver que passar por outro componente, com certeza aumentará a latência. No entanto, a latência do BFF é insignificante em comparação com o alto uso de recursos do navegador se ele precisar trabalhar com vários serviços não otimizados para o frontend.
- NodeJs/Express;
- Typescript;
- Docker (MongoDB, Redis);
- Jest;
src
├── app.ts
├── framework
│ └── integrations
├── infra
│ ├── datasource
│ ├── httpclients
│ └── loggers
├── main
│ ├── adapters
│ ├── configs
│ ├── containers
│ ├── errors
│ ├── helpers
│ ├── index.ts
│ ├── mappers
│ ├── middlewares
│ └── routes
├── presentation
│ ├── contracts
│ ├── controllers
│ └── helpers
└── usecases
├── contracts
├── helpers
└── user.usecase.ts
👉 O padrão BFF (Backend para Frontend): uma introdução
👉 BFF SoundCloud