คืออะไร Backend สำหรับ Frontend
Backend แยกสำหรับแต่ละ Frontend
BFF (Backend for Frontend)
Backend for Frontend — รูปแบบสถาปัตยกรรมที่สร้างชั้น backend แยกสำหรับไคลเอนต์แต่ละประเภท (เว็บ, แอปมือถือ, IoT)
ทำไมต้องใช้ BFF
| ปัญหาหากไม่มี BFF | โซลูชันกับ BFF | |-------------------|----------------| | API เดียวสำหรับทุกไคลเอนต์ | API ที่ปรับให้เหมาะสมสำหรับแต่ละไคลเอนต์ | | ข้อมูลเกินในการตอบกลับ | เฉพาะฟิลด์ที่จำเป็นสำหรับ UI เฉพาะ | | ลอจิกซับซ้อนบนไคลเอนต์ | การรวมข้อมูลบนเซิร์ฟเวอร์ | | โหลดช้าบนมือถือ | ลดคำขอและข้อมูล |
สถาปัตยกรรม
[Web App] → [Web BFF] ↘
→ [Microservices]
[Mobile App] → [Mobile BFF] ↗
เมื่อใดควรใช้
- ไคลเอนต์ต่างกัน — เว็บ, iOS, Android มีความต้องการต่างกัน
- สถาปัตยกรรมไมโครเซอร์วิส — มีหลายเซอร์วิสต้องรวม
- การเพิ่มประสิทธิภาพ — ลดข้อมูลสำหรับมือถือ
- ทีมอิสระ — ทีม frontend และ backend แยกกัน
ข้อดี
- เพิ่มประสิทธิภาพสำหรับไคลเอนต์แต่ละประเภท
- ปรับใช้อิสระ
- แยกการเปลี่ยนแปลง
- โค้ดไคลเอนต์ง่ายขึ้น
ข้อเสีย
- ลอจิกซ้ำกันระหว่าง BFFs
- จำนวนเซอร์วิสเพิ่มขึ้น
- ความซับซ้อนในการซิงค์การเปลี่ยนแปลง