Lệnh gọi LLM quá ~20 giây → Stripe đánh dấu thất bại, thử lại → handler chạy hai lần → xử lý đơn hàng trùng lặp.
/v1/webhook_endpoints · status: failed
Handler (đoạn code xử lý webhook trên server của bạn) mất 45 giây cho một lệnh gọi mô hình ngôn ngữ lớn (LLM). Stripe bị timeout sau khoảng 20 giây rồi thử lại. Khách hàng của bạn bị xử lý đơn hàng hai lần: bạn giao hàng, cộng credit hoặc gửi email hai lần.
AnyHook đứng giữa bên gửi và handler của bạn. Lưu, thử lại, ghi nhật ký và phát lại mọi thứ, mà không đụng tới code handler của bạn.
evt_3Pk2X3b1Lcx
Request timed out. Stripe retries with backoff for up to 3 days.
$ stripe webhooks update we_1234
--url in.anyhook.net/u/app
✓ Endpoint updated
✓ Delivering to AnyHookevt_3Pk2X3b1Lcx
attempt 1 · sender acked · 47.2s handler
// before
await llm.run(evt); /* 45s */
// after
return Response.json({ ok: true });sender retries avoided
127
Lệnh gọi LLM quá ~20 giây → Stripe đánh dấu thất bại, thử lại → handler chạy hai lần → xử lý đơn hàng trùng lặp.
/v1/webhook_endpoints · status: failed
Bot phải trả lời trong 3 giây. AI agent mất 30 giây → Slack thử lại 3 lần → bot của bạn có thể trả lời tối đa 4 lần.
Trả lời muộn là bị tính thất bại: 8 lần thử lại trong 4 giờ, rồi thất bại lặp lại sẽ xóa subscription. Đơn hàng ngừng đổ về.
Lưu lượng webhook production. Rẻ hơn 2 tuần tự xây cơ chế thử lại.
Bạn không bao giờ phải tin lời chúng tôi về một lượt gửi. Thư viện xác minh chữ ký và MCP server theo giấy phép Apache 2.0: github.com/gba3124/anyhook-mcp. Bản thân dịch vụ chuyển tiếp thì không phải mã nguồn mở.
Đăng ký bằng email hoặc Google. AnyHook cấp cho bạn một URL nhận (inbound URL) như https://in.anyhook.net/you/app. Gói Free không cần thẻ thanh toán.
Mở Stripe Dashboard → Webhooks → sửa endpoint → dán URL AnyHook. Cách đổi này cũng dùng được cho GitHub, Shopify, Events API của Slack và Paddle. Code handler của bạn giữ nguyên.
AnyHook lưu sự kiện, trả về 200 cho bên gửi sau khoảng 1 giây và chuyển tiếp tới handler của bạn kèm cơ chế thử lại (ít nhất một lần; chống trùng lặp theo X-AnyHook-Delivery). Sự kiện thất bại nằm trong dashboard với nút Replay chỉ cần một cú bấm.
Phù hợp
Không phù hợp
Nếu bạn có đủ nhân lực kỹ thuật để cài SDK và viết lại handler thành durable function, Inngest rất tốt. AnyHook dành cho những team muốn giải quyết vấn đề mà không đổi cấu trúc handler: đổi một URL webhook, giữ nguyên code hiện có.
Có. 10.000 sự kiện / tháng (tối đa 1.000 / ngày), 1 App, không cần thẻ thanh toán. Chúng tôi giữ gói này đủ rộng để các dự án cá nhân chạy được, nhưng đủ chặt để lưu lượng production tự nhiên sẽ nâng cấp. Không mánh khóe, không hết hạn.
GitHub, Shopify, Events API của Slack, Paddle, Linear, Clerk: cùng cách đổi URL này dùng được cho tất cả. Việc xác minh chữ ký được tự nhận diện từ các header gửi tới.
Một phần, và nên nói chính xác là phần nào. Thư viện xác minh chữ ký và MCP server theo giấy phép Apache 2.0 tại github.com/gba3124/anyhook-mcp, nên bạn có thể kiểm tra mọi lượt gửi chúng tôi ký mà không cần tin chúng tôi và không phụ thuộc vào chúng tôi. Dịch vụ chuyển tiếp nhận, lưu và thử lại thì không phải mã nguồn mở, và hiện chưa có bản tự host.
Chúng tôi lưu payload ở dạng mã hóa khi lưu trữ (AES-256-GCM). Payload phát lại được trong thời hạn phát lại của gói (3 / 30 / 90 ngày); sau đó sự kiện của gói Free bị xóa, còn các gói trả phí giữ một kho lưu trữ mã hóa, chỉ đọc (1 năm trên Pro, 7 năm trên Scale). Khóa không bao giờ rời khỏi hạ tầng của chúng tôi. Trên Pro và Scale, bạn cũng có thể bật zero retention: header và body của sự kiện được xóa khỏi nhật ký sau khi sự kiện được gửi đi; kho lưu trữ mã hóa vẫn giữ bản sao của nó.
Trên gói Free, sự kiện vượt hạn mức hằng tháng được tạm giữ trong nhật ký (thêm tối đa 20% hạn mức đó), chưa được gửi đi, và phát lại được sau khi bạn nâng cấp; vượt mức đó, hoặc vượt giới hạn hằng ngày, edge (lớp máy chủ biên của Cloudflare) trả về mã 429, không lưu gì và bạn nhận được một email. Nâng cấp lên Pro gỡ giới hạn ngay lập tức; phí vượt hạn mức của Pro là $0.15 / 1.000 sự kiện, kèm trần chi tiêu tùy chọn trong dashboard, vượt trần đó thì sự kiện được tạm giữ thay vì bị tính phí.
Đăng ký miễn phí, lấy URL nhận, đổi nó trong Stripe. AnyHook gánh các lần thử lại, handler của bạn vẫn chạy đúng như hôm nay.