Webhooks look simple at first: receive an HTTP request, forward it somewhere, return 200 OK. That simplicity disappears the moment the system becomes production-critical. Providers retry. Consumers fail. Payloads arrive twice. Teams need to debug what happened yesterday. A single endpoint becomes dozens of integrations, each with its own routing, retry, transformation, and observability needs. At that point, webhooks stop being “just HTTP callbacks” and become an event gateway problem. This is the layer FastHook is built around: receive webhook requests, route them through connections, deliver events to destinations, and make every step inspectable and retryable. The Core Model A useful webhook gateway needs clear internal concepts. In FastHook, a source is where inbound webhooks arrive. It represents the public endpoint that providers send requests to. A destination is where routed events are delivered. For example, an internal API endpoint, a worker, or another HTTP service.…