Conceptos

Backend for Frontend

Patrón donde cada tipo de cliente (web, mobile, IoT) tiene su propio backend dedicado que adapta las APIs de microservicios a las necesidades específicas de ese cliente.

seed#bff#pattern#frontend#api#microservices#architecture

¿Qué es?

Backend for Frontend (BFF) es un patrón donde cada tipo de cliente tiene su propio backend dedicado. En lugar de un API Gateway genérico, cada BFF adapta, agrega y transforma datos específicamente para su cliente.

¿Por qué?

  • Web necesita datos diferentes que mobile
  • Cada cliente tiene diferentes restricciones de red
  • Evita un API Gateway «god object» que intenta servir a todos
  • Cada equipo frontend controla su BFF

Estructura

Web App → BFF Web → Microservicios
Mobile App → BFF Mobile → Microservicios
IoT Device → BFF IoT → Microservicios

Cuándo usar

  • Múltiples tipos de cliente con necesidades diferentes
  • Equipos frontend que necesitan autonomía
  • APIs de microservicios demasiado granulares para consumo directo

¿Cuándo no usar?

  • Un solo tipo de cliente — un API Gateway genérico es suficiente
  • Equipos pequeños donde mantener múltiples BFFs es overhead
  • Cuando las diferencias entre clientes son mínimas (solo formato de respuesta)

BFF vs API Gateway

AspectoBFFAPI Gateway
PropósitoAdaptar datos por clienteEnrutar y proteger
PropiedadEquipo frontendEquipo de plataforma
LógicaAgregación y transformaciónRouting y auth
CantidadUno por tipo de clienteUno centralizado

Un BFF puede vivir detrás de un API Gateway — no son mutuamente excluyentes.

¿Por qué importa?

El patrón BFF resuelve el problema de una API genérica que intenta servir a múltiples clientes con necesidades diferentes. En lugar de sobrecargar un solo backend, cada frontend tiene su propio backend optimizado para sus patrones de acceso específicos.

Referencias

Conceptos