HomeOur Team
BFF - Backend for frontend
Solutions
BFF - Backend for frontend
October 20, 2020
2 min

Hôm nay mình sẽ giới thiệu tới các bạn một thuật ngữ trong lĩnh vực phát triển hệ thống đó là BFF (gần đây hay nghe ở dự án của khách hàng nên mới có dịp tìm hiểu thêm)

BFF là gì ?

là viết tắt của Backend For Frontend

Nói nôm na nó là, Phần chức năng Backend được sinh ra dành cho Frontnend. Thường được dùng để chỉ những phần chức năng như Gen ra HTML, API được custom hoặc được thêm mới để sử dụng trong việc phát triển Frontend.

Theo quan điểm cá nhân của mình thì có thể gọi là Server For FrontEnd thì sẽ gần với công việc thực thế hơn.

Vậy BFF sinh ra để giải quyết vấn đề gì ?

BFF là giải pháp để giải quyết các bài toán liên quan tới performance của hệ thống

Nhìn lại 1 chút lịch sử các Architecture

Chúng ta có người anh hùng đầu tiên : Monolithic

Với sự phát triển của Javascript, sử dụng Ajax để gọi và get dữ liệu thông qua HTTP, các Web System đã chuyển sang dạng interactive hơn. Client sẽ thực hiện nhiều xử lý nặng hơn, Server sẽ chỉ đề giao tiếp thông tin với Client thông qua các API

Tiếp theo đó, sự ra đời của Smartphone đã sản sinh ra thời đại mới với yêu cầu đòi hỏi Server phải được chuyên biệt hoá hơn về mặt chức năng, từ đó sinh ra khái niệm MicroService

Bài viết tham khảo

  • https://medium.com/koderlabs/introduction-to-monolithic-architecture-and-microservices-architecture-b211a5955c63

Chúng ta có 3 Design Patterns điển hình trong Microservice là

Direct Call

API Gateway

BFF → Chủ đề của bài viết

Việc Client ngày càng được đa dạng hoá, sẽ dẫn tới khó khăn trong việc tạo ra được các API đối ứng với toàn bộ các loại UI của Client. Mobile sẽ cần có các API tối ưu cho màn hình cỡ bé, Web cũng vậy.

Để giải quyết bài toán này, BFF được sinh ra, xem như là 1 tầng Server trung gian, làm nhiệm vụ custom các API có sẵn sao cho phù hợp với từng chủng loại Client.

BFF khác với API Gateway, là phía Client sẽ tự do chọn được các tập API tương thích nhất với mình, từ đó đẩy cao được tính độc lập và độ tự do, vốn là hai yếu tố quan trọng hình thành nên tư tưởng MicroService.

Phụ lục

Trong quá trình tìm hiểu, mình có thắc mắc điểm khác nhau giữa API Gateway và BFF, thì đã tìm được câu trả lời ở link sau

Các bạn có thể tham khảo ví dụ của SoundCloud về việc áp dụng BFF trong việc phát triển hệ thống của tác giả Phil Calçado


Tags

#frontend#backend#architecture#bff#102020

Related Posts

Sign In with Apple - Backend (Java)
Sign In with Apple - Backend (Java)
hoang.le
October 29, 2020
3 min
© 2021, All Rights Reserved.

Quick Links

HomeOur Team

Social Media