Backend für Frontend (BFF)
Problem
Eine mobile App benötigt eine kompakte Kontozusammenfassung; ein Web-Dashboard benötigt detaillierte Tabellen. Beide sammeln Daten von verschiedenen Diensten.
Wenn jedes Frontend diese Antworten zusammenstellt, werden Netzwerkanforderungen und Clientlogik hinzugefügt, während eine freigegebene API unterschiedliche Bildschirmanforderungen erfüllen muss.
Lösung — Backend für Frontend
Ein Backend für Frontend (BFF) ist ein Backend für ein bestimmtes Frontend, das die zugrunde liegenden Dienste aufruft und ihre Daten für die Bildschirme dieses Frontends kombiniert und formt.
Mobile App → Mobile BFF → Gemeinsame Dienste Web-Dashboard → Web BFF → Gemeinsame Dienste
Jedes Frontend-Team kann seine Antworten unabhängig voneinander entwickeln, auf Kosten eines anderen Dienstes und eines zusätzlichen Netzwerk-Hop.
Kerngedanke: Ein BFF passt Backend-Dienste an die Bedürfnisse eines bestimmten Frontends an.