Types of backends for frontends (BFF)

Explore discuss data innovations to drive business efficiency forward.
Post Reply
Fgjklf
Posts: 292
Joined: Mon Dec 23, 2024 7:16 pm

Types of backends for frontends (BFF)

Post by Fgjklf »

Backends for Frontends (BFF) is an architectural pattern designed to improve the interaction between frontends and complex systems.

Sergio Vergara
Sergio Vergara
December 10, 2024 — 7 minutes reading time
Types of backends for frontends (BFF)
Photo by Fikri Rasyid on Unsplash
The Backend For Fronted (BFF) approach involves dedicating a backend component per frontend type to encapsulate specific variations in protocols, workflows, or functional requirements. Next, we'll explore the different types of BFFs 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 loadrunner protocol list frontends and core system services. This architecture tailors the system to the specific needs of each frontend, as well as facilitating custom protocols, specific workflows , and frontend-optimized technologies. It also solves common coordination and coupling problems between teams developing multiple frontends.

For more details you can consult the following link:

Backend designed for Frontend, BFF Architecture
The BFF pattern creates a dedicated backend layer for each frontend interface.

ITDO Blog - Web Development Agency, Apps and Marketing in Barcelona

Variants of Backends for Frontends (BFF)
BFFs can be classified based on 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 handle differences in protocols, authorizations, or encryption between different types of frontends. Their main strength is the ability to handle these variations without modifying the underlying workflows, making them an ideal choice when frontends share a common business logic.

In this architecture, each frontend team can have its own proxy, tailored specifically to the needs of its frontend. This proxy acts as an intermediate layer between the frontend and the general system API, adjusting requests and responses to ensure compatibility and efficiency.

Proxies are characterized by being lightweight, focusing exclusively on adapting data and protocols 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 or handle protocols like REST on the web and GraphQL in an APP. Here, a specific proxy for each frontend can take care of these adaptations without modifying the main backend.

In short, proxies are an efficient and flexible solution to manage technical differences between frontends while maintaining simplicity in the design of the overall architecture.

2. Orchestrators
Orchestrators are a variant of Backends for Frontends (BFF) that are used when frontends have completely different workflows. Instead of simply adapting requests and responses as proxies do, orchestrators take responsibility for 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.
Post Reply