XRAPH/Work/Webhooks
Go · since 2026

Relay

Webhook delivery as a library. Event types register at runtime with an optional JSON Schema, every delivery is signed with HMAC-SHA256, retries back off from five seconds to two hours, and anything that still fails waits in the DLQ until the customer fixes their endpoint and you replay it.

Language
Go
Category
Webhooks
Since
2026
Stars
0
Repository Docs
01

Highlights

3 claims
H.01
Nothinglost
Guaranteed delivery

Configurable retry schedules with exponential backoff, and anything that exhausts them lands somewhere you can see it.

H.02
HMAC-SHA256
Every payload signed

Receivers verify authenticity with a single call, so a webhook endpoint does not have to trust its own inbox.

H.03
Typed
A registered event catalog

Event types are declared once with schema validation and referenced everywhere else by name.

02

What it does

6 entries

Outbound webhooks that keep trying, and tell you honestly when they have stopped.

02.1
Catalog

Events registered once

Event types are declared with their schema and validated on publish, so a typo in a payload is caught where it is written.

Schema-checked
02.2
Delivery

Retries with backoff

Schedules are configurable per endpoint and back off exponentially, which is the difference between a slow receiver recovering and a slow receiver being hammered.

Exponential
02.3
Failure

A dead letter queue

Failed deliveries are captured with their payload and the response that refused them, and can be inspected and replayed once the receiver is fixed.

Replayable
02.4
Signing

HMAC-SHA256 on every payload

Receivers verify with one call, so authenticity does not depend on the endpoint being secret.

Signed
02.5
Limits

A token bucket per endpoint

Rate limiting is held per receiving endpoint, which protects a downstream service from a burst it did not ask for.

Per-endpoint
02.6
Storage

In-memory to Postgres

Development runs in memory and production on Postgres, behind an interface small enough to replace.

Pluggable
03

Anatomy

4 modules
01

Delivery

Exponential backoff with a dead letter queue.

02

Signing

HMAC-SHA256 signatures per endpoint.

03

Subscriptions

Glob event matching against dynamic event types.

04

Admin API

Endpoints, retries and deliveries inspectable over HTTP.

04

Why it exists

Design notes

#What it is

Relay delivers webhooks. Tenant-scoped endpoints, event types defined at runtime, signed deliveries, retries, and a dead-letter queue you can replay, all as a library you import.

#What it does

  • Dynamic event types registered at runtime with optional JSON Schema validation, so a new event does not require a deploy of the delivery layer.
  • HMAC-SHA256 signatures on every delivery, with a signature package receivers can use to verify.
  • Exponential backoff: 5s, 30s, 2m, 15m, 2h by default. What still fails lands in the DLQ.
  • Per-endpoint rate limiting through a token bucket, so one slow customer endpoint cannot back up the queue for everyone.
  • Glob event subscriptions: an endpoint subscribes to order.* rather than enumerating.
  • Admin HTTP API with full CRUD over event types, endpoints, events, deliveries and DLQ replay.
  • OpenTelemetry and Prometheus: a trace span per delivery, plus counters, latency histograms and gauges.

#The part people underestimate

Replay is the feature customers actually ask about, and it is only useful if deliveries are stored with enough fidelity to reconstruct exactly: same body, same signature, same headers. Storing a summary instead of the payload is a decision that looks reasonable until the first support request.

05

Signals

GitHub
Stars
0
Language
Go
Since
2026
Adopters
00

Shipping something on Relay? Nobody is listed here yet. Tell me what you built and you will be the first.

Get listed
06

Where it sits

Fields · papers