Webhook là cơ chế một hệ thống gửi thông báo đến một địa chỉ của hệ thống khác khi sự kiện xảy ra. Trong giao nhận, sự kiện có thể là đã lấy hàng, nhập kho, đang vận chuyển, giao thất bại, giao thành công hoặc hoàn hàng.
Khác với việc liên tục hỏi trạng thái theo chu kỳ, webhook có thể giúp giảm độ trễ và số lần truy vấn. Tuy nhiên trong thực tế, một sự kiện có thể được gửi lại do retry, đến không đúng thứ tự hoặc tạm thời thất bại vì mạng.
Endpoint nhận webhook cần xác thực nguồn gửi theo cơ chế nhà cung cấp quy định, kiểm tra dữ liệu, ghi nhận idempotency để không xử lý cùng sự kiện nhiều lần và trả phản hồi đúng thời gian. Những tác vụ nặng nên được đưa vào hàng đợi thay vì giữ kết nối quá lâu.
Hệ thống cũng nên lưu trạng thái gốc của đối tác và trạng thái chuẩn nội bộ. Việc này giúp vừa hiển thị thống nhất cho người dùng vừa có dữ liệu nguyên bản để điều tra khi phát sinh sai lệch.
Webhook là một thành phần của kiến trúc đồng bộ chứ không phải toàn bộ giải pháp. Vẫn cần cơ chế quét bù hoặc đối chiếu định kỳ để phát hiện sự kiện bị bỏ lỡ.
