Add Hookdeck for Razorpay webhook reliability
Add Hookdeck for Razorpay webhook reliability
Decision
Add Hookdeck to the family stack as the webhook reliability layer for Razorpay. Razorpay POSTs payment events to Hookdeck; Hookdeck queues, retries, and forwards to the Hono API Worker at api.oriz.in/webhooks/razorpay.
Why
A Worker outage during a payment webhook silently drops revenue — the user paid but the subscription never activates because Razorpay's retry window is short. Hookdeck's free tier (100K requests/month, 100K attempts, 3-day retention, exponential-backoff retries, manual replay) covers the family's expected payment volume by orders of magnitude and adds a debug-friendly dashboard. No card required, no subscription — fits the family's no-paid-tier rule.
Implications
- Razorpay webhook destination URL changes from
https://api.oriz.in/webhooks/razorpayto a Hookdeck-issued URL (https://hkdk.events/<connection-id>). - Hookdeck forwards every event to
api.oriz.in/webhooks/razorpay— Worker code is unchanged. - A new env-var (
HOOKDECK_SIGNING_SECRET) is added to the Worker so it can verify Hookdeck-signed forwards. Razorpay's signature is preserved in headers. - Failures within the Worker (5xx response) trigger Hookdeck's retry policy automatically; the team can replay manually from the dashboard.
- Adds Hookdeck to the services/business/tooling/ catalog as an active pick.
- Swap cost is low: switching Hookdeck off means pointing Razorpay's webhook URL back at
api.oriz.indirectly (or fronting it with Cloudflare Queues — see services/business/tooling/hookdeck.md alternatives).
Cross-refs
- services/business/tooling/hookdeck
- services/business/payment/razorpay
- architecture/api-umbrella-hono-worker
- decisions/razorpay-as-primary-billing
- decisions/code-quality-stack — sibling reliability decision from the same session