Unlimited Design & Technology

API và tích hợp

Chọn polling hay webhook theo nhu cầu vận hành

Polling và webhook chuyển chi phí và trách nhiệm xử lý lỗi sang những vị trí khác nhau. Hãy chọn theo độ mới dữ liệu, khả năng bên gửi, giới hạn mạng và năng lực khôi phục thực tế.

UDT Insights14/01/2021
Một đồng nghiệp so sánh đồng hồ polling và webhook đến phía trên chiếc cân. Một đồng nghiệp khoanh tay cân nhắc tình huống.

Bảng theo dõi không phải lúc nào cũng cần cập nhật ngay. Quyết định điều phối có thể cần. Nếu chọn cách tích hợp mà không phân biệt nhu cầu này, nhóm có thể tạo lưu lượng thừa hoặc độ trễ bị che khuất. Hãy bắt đầu từ quyết định nghiệp vụ cần dữ liệu mới và thời gian chậm tối đa có thể chấp nhận.

So sánh trách nhiệm, không theo xu hướng

Polling là phía sử dụng hỏi về thay đổi theo lịch. Webhook là bên tạo dữ liệu gửi thông báo đến endpoint nhận. GitHub khuyến nghị dùng webhook thay polling cho API của họ, đồng thời hướng dẫn dùng polling hiệu quả khi vẫn cần.[6] Coi đây là khuyến nghị riêng cho GitHub, không phải quy tắc cho mọi tích hợp.

Polling giúp nhóm chủ động thời điểm yêu cầu, nhưng phải có người quản lý khoảng gọi, phân trang và mốc tiếp tục. Webhook cần đường nhận có thể truy cập và cách xác thực thông báo. Lựa chọn phù hợp phụ thuộc chức năng nhà cung cấp và giới hạn vận hành, không phải cách nào nghe hiện đại hơn.

Chuẩn bị cho quan sát bị thiếu và bị lặp

Stripe ghi rõ webhook có thể giao trùng và không bảo đảm thứ tự giao sự kiện.[4] Những đặc tính ấy đòi hỏi thiết kế phía nhận phù hợp với nhà cung cấp này. Đừng coi kênh webhook là sổ nghiệp vụ đầy đủ, có thứ tự, trừ khi bên tạo cam kết rõ điều đó.

Nên đối soát nếu bỏ sót thay đổi gây hại vận hành. Việc so sánh theo lịch có thể phát hiện khác biệt giữa trạng thái nội bộ và nguồn. Xác định nguồn có thẩm quyền và quy trình sửa. Ngược lại, thiết kế polling phải giải thích truy vấn có tìm được thay đổi giữa hai lần gọi không, kể cả xóa dữ liệu hoặc chuyển trạng thái không còn xuất hiện trong kết quả trạng thái hiện tại.

Với đối soát, xác định khoảng dữ liệu cần so sánh và quy tắc chuyển cấp trước khi xuất hiện chênh lệch. Nếu không, đường xử lý bổ sung chỉ thu thập khác biệt mà không ai có thẩm quyền sửa hoặc quyết định cách xử lý chúng.

Dùng danh sách lựa chọn cụ thể

Ước tính cả lưu lượng bình thường lẫn lưu lượng bắt kịp sau sự cố. Đánh giá nhóm sẽ chịu trách nhiệm lỗi, không chỉ nhóm phát triển. Kết hợp hai cách có thể hỗ trợ khôi phục nhưng cũng tạo hai đường phải dùng chung mã nhận diện và tránh thao tác nghiệp vụ trùng.

  • Quy định tuổi dữ liệu chấp nhận được cho từng quyết định nghiệp vụ.
  • Kiểm tra xác thực webhook, quy tắc gửi lại, danh tính sự kiện và thời gian lưu.
  • Kiểm tra bộ lọc polling, phân trang, giới hạn lưu lượng và cách nhận biết xóa.
  • Xác định bắt kịp sau sự cố, người phụ trách đối soát và ngưỡng cảnh báo.

Ví dụ giả định: bảng lịch dịch vụ

Ví dụ giả định: doanh nghiệp dịch vụ cập nhật bảng kế hoạch định kỳ vì điều phối viên không quyết định theo từng giây. Nhóm chọn polling với mốc tiếp tục đã lưu và hiển thị lần làm mới thành công cuối. Hủy lịch khẩn dùng kênh webhook khi nhà cung cấp hỗ trợ.

Tác vụ đối soát so sánh các lịch sắp tới và đánh dấu khác biệt. Thiết kế cần cả hai đường dùng chung danh tính lịch hẹn. Nó không hứa cập nhật tức thì khi mất kết nối hoặc không truy cập được nhà cung cấp. Bước tiếp theo là ghi độ trễ cho phép cạnh từng quy trình, rồi thử khôi phục sau khi chủ động ngắt kết nối trước khi chốt cách tích hợp.

Tài liệu tham khảo

Trao đổi về dự án của bạn

Cùng UDT xác định nhu cầu và bước triển khai tiếp theo.

Liên hệ UDT
Zalo