精选项目

后端基础设施

Hookrelay.

交付是一个过程,可靠性是一整套系统。

持久化签名 Webhook,支持随机退避重试、带隔离令牌的工作租约与死信恢复。

独立开源项目
GoPostgreSQLHMACSKIP LOCKED
概念架构
  1. 01幂等发布
  2. 02PostgreSQL 队列
  3. 03带租约的工作节点
  4. 04HMAC 签名 HTTP
  5. 05重试 / 死信

工程问题

发布事件很容易,但在接收端缓慢或不可用时仍不丢失事件,需要完整的系统。Hookrelay 是独立开源项目,支持持久化扇出、签名、重试、交付检查和死信重放。

持久协调

Go API 将事件和交付任务写入 PostgreSQL。工作节点使用 SELECT … FOR UPDATE SKIP LOCKED 领取任务,锁仅覆盖领取操作,不跨越 HTTP 请求。

租约与隔离令牌防止过期工作节点的迟到结果覆盖新状态。领取任务、执行任务和记录结果是不同的故障边界。

故障、重试与身份

有上限的指数退避、随机抖动、请求超时,以及对 429/503 响应中 Retry-After 的支持构成重试策略。达到上限后进入死信队列,通过重放恢复;410 响应禁用端点。

发布需要幂等键。相同请求返回原始事件,同键不同内容被拒绝。HMAC-SHA256 签名遵循 Standard Webhooks,接收端仍需验证签名并去重。

保证与局限

这是至少一次交付,并不保证外部副作用恰好一次。接收端可能已处理,但发送端未收到响应。浏览器演示简化模型并压缩时间,仓库文档包含测试、监控与 PostgreSQL 队列的取舍。

亲手探索模型.

模型 / 至少一次交付 本地运行
01事件
02交付
03失败 / 结果
04重试
05最终状态
00 / 04

准备发布事件。

教学模拟 · 压缩时间线;简化的工作节点模型
继续探索Witness
所有精选项目