Webhook Guides

Webhook Fan-Out

Webhook fan-out routes one inbound event stream to multiple downstream destinations. A Stripe invoice event might update billing, analytics, support, and customer notifications. A GitHub pull request event might update CI, review workflows, deployment previews, and audit systems.

The pattern is powerful, but it needs branch isolation. Each destination should have its own filters, retry rules, pause state, delivery history, and replay path so one failed consumer does not make the whole webhook stream opaque.

Structured webhook fan-out topology with one source and multiple destination branches.
In FastHook, one source can feed many connection branches. Each branch owns its destination behavior and recovery evidence.

Fan-out design rules

  • Keep one source per provider or producer so the ingress contract stays clear.
  • Create one connection per downstream consumer.
  • Put filters and transformations on the branch that needs them.
  • Retry and replay failed branches without redelivering unrelated destinations.
  • Use destination rate limits for slow analytics, support, or notification systems.

Create a branch connection

Create connection
curl -X POST "https://api.fasthook.io/v1/connections" \
  -H "Authorization: Bearer $FASTHOOK_API_KEY" \
  -H "x-team-id: tm_3b5335b627084a838b" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Billing events to analytics",
    "source_id": "src_provider",
    "destination_id": "dst_analytics",
    "enabled": true
  }'

Related guides