Backend cho Frontend là gì
Backend riêng cho mỗi frontend
BFF (Backend for Frontend)
Backend for Frontend — mẫu kiến trúc trong đó một lớp backend riêng được tạo cho mỗi loại client (web, ứng dụng di động, IoT).
Tại sao cần BFF
| Vấn đề không có BFF | Giải pháp với BFF | |--------------------|-------------------| | Một API cho tất cả client | API được tối ưu cho từng client | | Dữ liệu dư thừa trong phản hồi | Chỉ các trường cần thiết cho UI cụ thể | | Logic phức tạp trên client | Tổng hợp dữ liệu trên server | | Tải chậm trên di động | Giảm thiểu request và dữ liệu |
Kiến trúc
[Web App] → [Web BFF] ↘
→ [Microservices]
[Mobile App] → [Mobile BFF] ↗
Khi nào sử dụng
- Client khác nhau — web, iOS, Android với nhu cầu khác nhau
- Kiến trúc microservice — nhiều service cần tổng hợp
- Tối ưu hiệu suất — giảm thiểu dữ liệu cho di động
- Đội ngũ độc lập — đội frontend và backend riêng biệt
Ưu điểm
- Tối ưu cho từng loại client
- Triển khai độc lập
- Cách ly thay đổi
- Đơn giản hóa code client
Nhược điểm
- Trùng lặp logic giữa các BFF
- Tăng số lượng service
- Phức tạp trong việc đồng bộ thay đổi