DOCS

Tính lũy đẳng

Trạng thái 

Hỗ trợ khóa lũy đẳng là một phần hiện tại. Các mutation thử lại nội bộ được chọn — ví dụ, các luồng thử lại hóa đơn đơn hàng và thử lại hoàn tiền hóa đơn — đã chấp nhận khóa lũy đẳng và sử dụng nó để khử trùng lặp các cuộc gọi bộ xử lý thanh toán hạ lưu. Chưa có đối số idempotencyKey chuẩn hóa trên tất cả các mutation tạo mới hướng tới khách hàng trên Zonos Graph; điều đó nằm trong lộ trình. Cho đến khi nó ra mắt, hãy sử dụng các mẫu dưới đây để giữ cho các mutation an toàn để thử lại.

Những mutation an toàn theo mặc định 

Một số mutation có tính lũy đẳng tự nhiên vì chúng upsert bằng một định danh ổn định do bạn cung cấp. Khi bạn gọi những mutation này với cùng một đầu vào, kết quả là giống nhau — không có rủi ro tạo ra các bản sao.

  • Các mutation nhận một định danh do thương gia cung cấp duy nhất (ví dụ, externalId của đơn hàng) sẽ trả về bản ghi hiện có khi gọi lại thay vì tạo bản ghi mới.
  • Các thao tác chỉ đọc (truy vấn) luôn an toàn để thử lại.

Khi bạn có thể gắn định danh ổn định của riêng mình vào tài nguyên bạn đang tạo, hãy ưu tiên con đường đó.

Các mẫu cho những mutation không lũy đẳng tự nhiên 

Đối với các mutation tạo tài nguyên mà không có khóa do thương gia cung cấp, hãy xử lý chúng là tối đa một lần từ phía của bạn:

  1. Lưu giữ yêu cầu trước khi gửi. Ghi một hàng vào cơ sở dữ liệu của riêng bạn (trạng thái pending) trước cuộc gọi mạng.
  2. Gửi mutation. Khi thành công, ghi lại id tài nguyên được trả về so với hàng đang chờ của bạn (trạng thái committed).
  3. Khi lỗi mạng, không thử lại mù quáng. Truy vấn Zonos Graph để xác định xem tài nguyên có được tạo hay không (ví dụ, bằng cách liệt kê các tài nguyên được tạo trong vài phút qua cho tài khoản của bạn, hoặc bằng cách truy vấn một tài nguyên liên quan mà bạn có thể tương quan). Chỉ thử lại nếu bạn có thể xác nhận rằng tài nguyên không có.
  4. Sử dụng ràng buộc duy nhất trong cơ sở dữ liệu của riêng bạn trên bất kỳ khóa kinh doanh nào đại diện cho yêu cầu, vì vậy một lần thử lại trùng lặp từ ứng dụng của riêng bạn không thể gửi hai lần.

Giao hàng webhook là ít nhất một lần 

Khi bạn sử dụng webhook Zonos, hãy thiết kế các trình xử lý có tính lũy đẳng — cùng một sự kiện có thể được giao nhiều lần. Khử trùng lặp bằng id sự kiện. Xem Webhooks để biết trường id sự kiện.

Nền tảng đang hướng đến đâu 

Nền tảng cơ bản đã chạy các luồng khóa lũy đẳng trong sản xuất để thử lại hóa đơn: khóa phạm vi nỗ lực thử lại và ngăn chặn các cuộc gọi bộ xử lý thanh toán trùng lặp. Chúng tôi đang làm việc để công khai cùng một mẫu như một đối số idempotencyKey tùy chọn trên các mutation tạo mới hướng tới khách hàng. Khi được cung cấp, Graph sẽ trả về phản hồi ban đầu cho bất kỳ cuộc gọi tiếp theo nào với cùng khóa trong cửa sổ lưu giữ. Trang này sẽ được cập nhật khi bề mặt có sẵn chung.

Nếu các khóa lũy đẳng chuẩn hóa trên các mutation hướng tới khách hàng đang chặn tích hợp của bạn, liên hệ hỗ trợ.

Trang này có hữu ích không?