Infrastructure
Outgoing Webhooks
Reliable webhook delivery with retries, signing, and logging. Your customers' integrations, handled.
The Problem
Outgoing webhooks are one of those features that sounds simple and isn’t. You need to deliver events reliably — which means retries, backoff, and dead-letter handling. You need to sign payloads so your customers can verify authenticity. You need logs so customers can debug their integrations. And you need a way for customers to configure their own endpoints without involving your support team.
Built naively, webhooks become a reliability liability. Events get dropped during deploys, retries cause duplicate processing, and debugging a failed delivery means grepping through application logs.
How Flux Handles It
Flux provides a managed outgoing webhook system that handles the hard parts:
- Reliable delivery: Events are persisted before delivery attempts — no dropped events during restarts or deploys
- Automatic retries: Exponential backoff with configurable retry limits; failed deliveries move to a dead-letter queue for inspection
- Payload signing: Every webhook is signed with an HMAC secret unique to each endpoint, so your customers can verify the payload came from you
- Customer self-service: A hosted portal lets your customers register endpoints, view delivery logs, and replay failed events
- Filtering: Customers subscribe to specific event types — they only receive what’s relevant to their integration
What Makes It Different
Flux webhooks are part of the platform event stream. When Flux emits an event — a user logs in, an org upgrades their plan, a flag changes state — that event flows through the same pipeline as your application events. You configure what gets delivered to customers, and the infrastructure handles everything else.
use flux_sdk::Flux;
let flux = Flux::init("your-api-key");
// Emit an event — Flux handles delivery to all subscribed endpoints
flux.webhooks().emit("invoice.paid", json!({
"invoice_id": invoice.,
"org_id": invoice.,
"amount_cents": invoice.,
}))?;
// Verify an inbound webhook from a customer's system (for bidirectional flows)
let payload = flux.webhooks().verify_inbound(
&request.,
&request.["Flux-Signature"],
)?;Your customers get the reliable, debuggable webhook experience they’d expect from a mature platform. You write two lines of code to emit events, and Flux handles everything else — delivery, retries, signing, logging, and the customer-facing portal.
Ready to try Outgoing Webhooks?
Get started in minutes. No credit card required.