Summary
milestone release events are delivered to subscribers with no signature, no retry, and no visibility when delivery fails. Build a delivery pipeline with HMAC signing, bounded retries with backoff, and a dead-letter queue for exhausted deliveries.
Why this matters
Unsigned, best-effort webhooks are insecure and lossy. Signing lets subscribers verify authenticity; retries + DLQ make delivery reliable and observable.
Requirements
- Sign each payload with an HMAC (
X-Signature + timestamp) subscribers can verify.
- Deliver with bounded retries and exponential backoff on 5xx/timeout.
- After exhausting retries, move the event to a dead-letter queue with the failure reason.
- Expose a way to list and replay dead-lettered events.
Technical guidance
- Include a timestamp in the signed payload to prevent replay.
- Bound payload size and make attempts/backoff configurable.
Edge cases — each must have a test
Acceptance criteria
Out of scope
- A durable external queue (in-process DLQ is fine)
- Subscriber management UI
Rewards
Part of the GrantFox OSS / Official Campaign (FWC26) — this task may be rewarded. PR quality is assessed by AI: depth, correctness under edge cases, meaningful tests, and clean design are what earn the reward. Shallow changes (typos, formatting, trivial docs) do not qualify.
Summary
milestone release events are delivered to subscribers with no signature, no retry, and no visibility when delivery fails. Build a delivery pipeline with HMAC signing, bounded retries with backoff, and a dead-letter queue for exhausted deliveries.
Why this matters
Unsigned, best-effort webhooks are insecure and lossy. Signing lets subscribers verify authenticity; retries + DLQ make delivery reliable and observable.
Requirements
X-Signature+ timestamp) subscribers can verify.Technical guidance
Edge cases — each must have a test
Acceptance criteria
npm run lint,npm test, andnpm run buildall pass locallyCloses #<issue>Out of scope
Rewards
Part of the GrantFox OSS / Official Campaign (FWC26) — this task may be rewarded. PR quality is assessed by AI: depth, correctness under edge cases, meaningful tests, and clean design are what earn the reward. Shallow changes (typos, formatting, trivial docs) do not qualify.