Vad är Backend för Frontend
Separat backend för varje frontend
BFF (Backend for Frontend)
Backend for Frontend — ett arkitekturmönster där ett separat backend-lager skapas för varje typ av klient (webb, mobilapp, IoT).
Varför BFF behövs
| Problem utan BFF | Lösning med BFF | |------------------|-----------------| | Ett API för alla klienter | Optimerat API för varje klient | | Överdriven data i svar | Endast nödvändiga fält för specifik UI | | Komplex logik på klient | Dataaggregering på server | | Långsam laddning på mobil | Minimerade förfrågningar och data |
Arkitektur
[Webb-App] → [Webb BFF] ↘
→ [Mikrotjänster]
[Mobil-App] → [Mobil BFF] ↗
När man ska använda
- Olika klienter — webb, iOS, Android med olika behov
- Mikrotjänstarkitektur — många tjänster att aggregera
- Prestandaoptimering — dataminimering för mobil
- Oberoende team — separata frontend- och backend-team
Fördelar
- Optimering för varje klienttyp
- Oberoende driftsättning
- Ändringsisolering
- Förenklad klientkod
Nackdelar
- Logikduplicering mellan BFF:er
- Ökat antal tjänster
- Komplexitet i synkronisering av ändringar