Gateway Aggregation / Backend-for-Frontends (BFF)
Einleitung
Backend-for-Frontends (BFF) ist ein Pattern, bei dem pro Client-Typ ein dedizierter Backend-Endpunkt bereitgestellt wird.
Ziel ist nicht zentrale Governance –
sondern Client-Optimierung.
Web, Mobile oder Partner-Clients erhalten APIs, die exakt auf ihre Bedürfnisse zugeschnitten sind.
Einordnung
BFF ist ein Meso-Pattern an der Edge eines Systems.
Es sitzt:
Frontend ↔ BFF ↔ Backend-Services
Wichtig:
- Ein API Gateway standardisiert Policies.
- Ein BFF optimiert für einen konkreten Client.
BFF gehört zur Integrations- und API-Ebene, nicht zur Domänenebene.
Grundprinzip
Kernaussage:
- Jeder Client erhält sein eigenes optimiertes Backend.
- Backend-Services bleiben generisch und fachlich stabil.
- Client-spezifische Logik bleibt clientnah.
Zielsetzung
BFF adressiert:
- unterschiedliche Payload-Anforderungen
- unterschiedliche Auth-Modelle
- unterschiedliche Latenz-Anforderungen
- unterschiedliche Aggregationsbedürfnisse
Es verhindert:
dass Backend-Services zu UI-getriebenen APIs degenerieren.
Charakteristika
1️⃣ Client-spezifische APIs
- Web braucht breite Payloads
- Mobile braucht schlanke Responses
- Partner brauchen stabile, versionierte Schnittstellen
Der BFF kapselt diese Unterschiede.
2️⃣ Aggregation
Ein BFF:
- ruft mehrere Services auf
- kombiniert Ergebnisse
- reduziert Roundtrips
Er ist Orchestrator, nicht Domäneninhaber.
3️⃣ Ownership beim Frontend-Team
Best Practice:
- Frontend-Team besitzt seinen BFF
- Backend-Teams liefern stabile Fach-APIs
So bleiben Prioritäten aligned.
4️⃣ Eigene Deployments
- Skalierbar pro Client
- Versionierbar unabhängig
- Rollouts client-spezifisch möglich
Vorteile
- Optimierte APIs pro Client
- Schnellere Frontend-Iteration
- Geringere Netzwerk-Last
- Entkopplung von UI und Backend-Design
Risiken / typische Fallstricke
1️⃣ BFF wird Mini-Monolith
Wenn Fachlogik hineinwächst, wird der BFF zum zweiten Backend.
2️⃣ Code-Duplikation
Mehrere BFFs können:
- Mapping-Logik duplizieren
- ähnliche Aggregationen wiederholen
3️⃣ Verwechslung mit API Gateway
Ein API Gateway:
- macht Auth
- macht Rate Limits
- macht Routing
Ein BFF:
- kennt Client-Bedürfnisse
- aggregiert Daten
- optimiert Payload
4️⃣ Überengineering
Ein einzelner SPA mit stabilen Anforderungen braucht oft keinen dedizierten BFF.
Wann sinnvoll?
- Mehrere Clients mit stark unterschiedlichen Anforderungen
- Mobile-Optimierung wichtig
- Teams sind client-orientiert organisiert
- Microservices erzeugen viele Roundtrips
Wann unnötig?
- Nur ein Client existiert
- Backend-APIs bereits gut passen
- System klein und stabil ist
Vergleich: API Gateway vs BFF
| API Gateway | BFF | |
|---|---|---|
| Ebene | Edge-Infrastruktur | Client-Integration |
| Fokus | Policies & Routing | Client-Optimierung |
| Kennt Client? | Nein | Ja |
| Fachlogik? | Nein | Minimal |
| Ownership | Plattform-Team | Frontend-Team |
Strategische Perspektive
BFF ist kein Skalierungs-Pattern. Es ist ein Produktivitäts-Pattern.
Es schützt Backend-Services vor UI-getriebener Erosion und schützt Frontends vor Backend-Komplexität.
Fazit
Backend-for-Frontends ist sinnvoll, wenn:
- mehrere Clients existieren
- Anforderungen divergieren
- Teamstruktur client-orientiert ist
Er ist kein Pflichtbaustein jeder Microservices-Architektur, sondern ein gezieltes Integrationsmuster.