The Backend For Fronted (BFF) technique involves dedicating a backend component for each frontend type to encapsulate specific variations in protocols, workflows, or functional requirements. Below, we’ll explore the different types of BFF and how they can be applied to maximize the efficiency, flexibility, and maintainability of your system.
What is a BFF?
A BFF acts as an integration layer between the frontends and the system’s core services. This architecture adapts the system to the c level contact list specific needs of each frontend, in addition to facilitating customized protocols, specific workflows , and frontend-optimized technologies. It also solves common coordination and coupling problems among teams developing multiple interfaces.
For more details you can consult the following link:
Variants of Backends for Frontends (BFF)
BFFs can be classified according to the type of component dedicated to each scenario or frontend (Web, APP, etc.):
1. Proxies
Proxies are a variant of Backends for Frontends (BFF) designed to manage differences in protocols, authorizations, or encryption between different types of frontends. Their main strength is the ability to handle these variations without modifying example of reciprocity bias: the underlying workflows, making them an ideal choice when frontends share common business logic.
In this architecture, each frontend team can have its own proxy, specifically tailored to the needs of its frontend. This proxy acts as an intermediate layer between the frontend and the overall system API, adjusting requests and responses to ensure compatibility and efficiency.
Proxies are characterized by being lightweight, focusing exclusively on data and protocol adaptation without adding complex logic or additional responsibilities.
Imagine a system with mobile and web applications. Although both interact with the same core services, they might need different data formats afghanistan business directory or handle protocols like REST on the web and GraphQL in an app. Here, a front-end-specific proxy can handle these adaptations without modifying the main backend.
In short, proxies are an efficient and flexible solution for managing technical differences between frontends while maintaining simplicity in the overall architectural design.
2. Orchestrators
Orchestrators are a variant of Backends for Frontends (BFF) used when frontends have completely distinct workflows. Rather than simply adapting requests and responses like proxies do, orchestrators assume the responsibility of coordinating multiple underlying services to deliver a unified experience tailored to the specific needs of each frontend.
Each frontend has its own dedicated backend, which contains the specific logic required for its workflow. This allows for a clear separation between different roles or types of users, optimizing interaction with the system.
Orchestrators excel at managing the complexity of systems where frontends perform tasks that don’t share much in common.
In an e-commerce store, consumers and managers have completely different workflows. Consumers access features such as product search, orders, and payments. Managers manage inventory, monitor statistics, and process returns.