Hva er Backend for Frontend
Separat backend for hver frontend
BFF (Backend for Frontend)
Backend for Frontend — et arkitekturmønster der et separat backend-lag opprettes for hver klienttype (web, mobilapp, IoT).
Hvorfor BFF trengs
| Problem uten BFF | Løsning med BFF | |------------------|-----------------| | Én API for alle klienter | Optimert API for hver klient | | Overdreven data i svar | Kun nødvendige felt for spesifikk UI | | Kompleks logikk på klient | Dataaggregering på server | | Treg lasting på mobil | Minimerte forespørsler og data |
Arkitektur
[Web-App] → [Web BFF] ↘
→ [Mikrotjenester]
[Mobil-App] → [Mobil BFF] ↗
Når skal man bruke
- Ulike klienter — web, iOS, Android med ulike behov
- Mikrotjenestearkitektur — mange tjenester å aggregere
- Ytelsesoptimalisering — dataminimering for mobil
- Uavhengige team — separate frontend- og backend-team
Fordeler
- Optimering for hver klienttype
- Uavhengig distribusjon
- Endringsisolering
- Forenklet klientkode
Ulemper
- Logikkduplisering mellom BFF-er
- Økt antall tjenester
- Kompleksitet i synkronisering av endringer