Truyền Dữ liệu Backend: Trả về Tất cả Các Field hay chỉ Các Field Cần Thiết với Bộ nhớ đệm phía Client – Phương pháp nào Tốt hơn?

Truyền Dữ liệu Backend: Trả về Tất cả Các Field hay chỉ Các Field Cần Thiết với Bộ nhớ đệm phía Client – Phương pháp nào Tốt hơn?
Photo by Patrick Lindenberg / Unsplash

Mình hiện đang làm việc để tối ưu hóa luồng dữ liệu giữa backend và frontend của một ứng dụng, và mình đứng giữa hai lựa chọn chính về cách mà backend nên xử lý việc truyền dữ liệu cho mỗi màn hình.


Option 1: Backend Trả về Tất cả Các Trường Dữ liệu cho Mỗi Màn Hình

Đối với mỗi yêu cầu tương ứng với một màn hình trong ứng dụng, backend trả về tất cả các trường dữ liệu cần thiết cho màn hình đó, ngay cả khi một số dữ liệu bị lặp lại trên nhiều màn hình.

Option 1: Backend Trả về Tất cả Các Trường Dữ liệu cho Mỗi Màn Hình



Option 2: Backend Chỉ Trả Về Các Trường Cần Thiết, Dữ Liệu Bổ Sung Được Lưu Trữ Đệm trên Client


Backend chỉ trả về các trường dữ liệu thiết yếu cần cho mỗi màn hình, trong khi các dữ liệu liên quan khác được lưu trữ đệm phía client sau khi truy xuất ban đầu. Các yêu cầu tiếp theo dựa vào dữ liệu lưu trữ đệm, giảm thiểu truyền dữ liệu dư thừa.

Option 2: Backend Chỉ Trả Về Các Trường Cần Thiết, Dữ Liệu Bổ Sung Được Lưu Trữ Đệm trên Client

Câu Hỏi Cho Cộng Đồng

  • Bạn ưu tiên option 1 hay option 2 cho sản phẩm của bạn ?
    • Giả định: Hệ thống có 10,000 user và thời điểm đỉnh có 1000 user cùng truy cập