FEATURES / WEBHOOKS
Outgoing webhooks,
done right.
HMAC signatures, exponential backoff, dead-letter queue, idempotency keys, signed URLs. Everything you need to ship a B2B integration.
Production-grade delivery semantics.
HMAC-SHA256 signing
Every payload signed with the destination's secret. Header includes timestamp + body hash to defeat replay.
BullMQ workers
Redis-backed queue. Concurrency tunable per endpoint. Failed deliveries auto-retry with jitter.
Exponential backoff
5 retries over 24 hours: 30s, 5min, 30min, 2h, 8h. Configurable per subscription.
Dead-letter queue
After max retries, the event drops into a DLQ table you can replay from the admin UI or CLI.
Idempotency
Each delivery carries a UUID. Receivers can dedupe safely; UseDeploy guarantees at-least-once.
Receiver verification
Helper function ships in 5 languages so your customers can verify signatures in one line.
Subscribe an endpoint, get a typed event stream.
Domain events are published into the in-process bus, then a single subscriber forwards them to BullMQ. From there, each registered destination fans out to its own queue. You write the event; the infrastructure handles the rest.
1 eventBus.subscribe("OrderCreated", async (event) => {
2 const subs = await webhookRepo.findByEvent(
3 event.orgId, "order.created"
4 );
5 for (const sub of subs) {
6 await queue.add("deliver", {
7 subscriptionId: sub.id,
8 payload: event.toPublicShape(),
9 });
10 }
11 });
B2B-ready in a weekend.
Stripe-grade webhook delivery without the months of plumbing.