Blog
Lessons Learned Building a Webhook Gateway
A webhook gateway looks simple from far away: accept HTTP, send HTTP. The hard part is everything that happens during failure: duplicate delivery, partial outages, noisy providers, schema changes, slow receivers, and replay risk.
These are the product and engineering lessons that shaped FastHook's model.
Separate The Model
- Sources receive provider traffic.
- Requests preserve what arrived.
- Connections decide where traffic should go.
- Events represent destination-specific work.
- Attempts explain what the receiver returned.
Make Recovery Boring
- Retries should be visible, not hidden in workers.
- Replay should be filtered, cancellable, and tied to records.
- Pause should isolate one destination branch instead of stopping all ingress.
- Metrics should answer whether the issue is provider ingress or destination delivery.
Design For Operators
During an incident, the operator needs evidence before action. The interface should show what happened, why it failed, and what is safe to retry.