Production Webhook Proxy & Localhost Replay Engine

The webhook dead-letter queue you wish you had deployed yesterday.

When Postgres exhausts connection pools during a surge, or Lambda times out during a cold start, Stripe retries 3 times and gives up. We capture the raw request byte stream, notify your team, and let you replay failed events directly to production — or forward them to localhost for instant debugging.

How It Works
HMAC Verification100% Raw Bytes
Localhost Forwarding1-Click Local Replay
Retention Buffer30 Days Stored
Relay Overhead< 18ms Edge

🔐 %100 HMAC Şeffaflığı ve Uçtan Uca Güvenlik

ZERO-KNOWLEDGE ARCHITECTURE

HookSentinel, üçüncü parti sağlayıcılarınızdan gelen verileri ham bayt (raw byte buffer) seviyesinde işler. Gelen verinin kriptografik şifreleme imzalarına asla dokunmaz ve modifiye etmez.

Zero-Knowledge (Sıfır Bilgi) altyapımız sayesinde, hata kuyruğuna (DLQ) kilitlenen tüm verileriniz kendi şifreleme anahtarlarınızla (encryption keys) veri tabanımızda şifrelenir. Verilerinizi siz dashboard'unuzu açana kadar biz dahil kimse düz metin olarak okuyamaz.

HMAC Signatures Untouched
Client-Side AES-256 Decrypt
Zero Plaintext on Disk
Post-Mortem: Why We Built This

"At 3:15 AM on a Sunday, our product launched on Hacker News. Traffic surged 10x. Our database connection pool saturated, and our /api/webhooks/stripe endpoint began throwing HTTP 500 errors.

Stripe retried the failed webhooks over the next hour. Because the database was still recovering, every retry failed. Stripe then marked our webhook endpoint as unhealthy and stopped sending events entirely.

By morning, 42 customers had been charged, but zero accounts had been upgraded. We had to spend 6 hours manually inspecting Stripe dashboard logs and writing throwaway scripts to backfill the missing subscriptions.

— Eren, Bootstrapped SaaS FounderSolution: A transparent reverse-proxy DLQ with Localhost Replay.

Anatomy of a Recovered Incident & Localhost Debugging

Here is what happens when your server fails, and how you reproduce it on your local machine:

14:02:10.120
INBOUNDStripe fires payment_intent.succeeded ($199.00)

Stripe sends POST request with HMAC Stripe-Signature header to HookSentinel proxy.

14:02:10.840
500 ERRORProduction Destination crashes: DB lock timeout

HookSentinel captures the exact raw JSON body, all original HMAC headers, returns 200 OK to Stripe to prevent endpoint ban, and alerts your Slack channel.

14:05:00.000
LOCAL REPLAYClick "Replay to Localhost" → localhost:3000

Never debug in the blind on production. HookSentinel pushes the exact failed production payload into your local dev environment (http://localhost:3000/api/webhooks/stripe) with your debugger attached.

14:15:00.000
RESOLVEDBug Fixed. Click "Replay to Prod" → HTTP 200 OK

The event is cleanly processed on production without writing throwaway data migration scripts.

Raw Byte Signature Transparency

HookSentinel never parses or alters incoming payload buffers. Your cryptographic verifications pass without friction:

// app/api/webhooks/stripe/route.ts
// HookSentinel forwards raw byte streams untouched. Signature verification never breaks:
import { headers } from 'next/headers';
import Stripe from 'stripe';

const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!);

export async function POST(req: Request) {
  const body = await req.text(); // Raw buffer preserved
  const signature = (await headers()).get('stripe-signature')!;

  try {
    const event = stripe.webhooks.constructEvent(
      body,
      signature,
      process.env.STRIPE_WEBHOOK_SECRET!
    );
    // Process payment safely in your background queue...
    return new Response('ok', { status: 200 });
  } catch (err: any) {
    // If your DB or worker fails here with 500, HookSentinel DLQ catches it!
    return new Response(err.message, { status: 400 });
  }
}
Gelir Odaklı AI Sentinel • Zero-Churn Kalkanı

Sunucunuz 500 Verse Bile Geliriniz Asla Buharlaşmaz

Geliştiricilerin en büyük kabusu: Stripe'tan gelen fatura başarısızlığı (invoice.payment_failed) veya abonelik iptali webhook'ları sırasında sunucunun kilitlenmesidir. Normalde sessizce müşteri kaybedersiniz. HookSentinel AI anında devreye girer.

HookSentinel Olmadan (Sessiz Churn)
  • ✕Stripe invoice.payment_failed fırlatır.
  • ✕Sunucunuz DB Lock Timeout ile 500 döner ve çöker.
  • ✕Ödeme güncelleme e-postası veya Slack uyarısı asla tetiklenemez.
  • ✕7 gün sonra Stripe aboneliği kalıcı iptal eder: \$199 MRR buharlaşır.
HookSentinel AI İle (Otonom Kurtarma)
  • ✓Sunucu çöktüğü an HookSentinel faturayı DLQ'ya alır ve Stripe'a 200 döner.
  • ✓Otonom AI devreye girer: Müşteriye özel 1-click Stripe Hosted Invoice linki hazırlar.
  • ✓Slack #churn kanalına anında acil kurtarma bildirimi basar.
  • ✓Müşteri oturum açmadan kartını günceller: \$199 MRR kurtarılır.
Örnek Otonom AI Dunning E-postası (Dönüşüm Odaklı & Empatik)Kullanıcı oturum açmak zorunda kalmaz

Konu: Action Required: Please update your payment method for Acme Cloud SaaS

"Merhaba Marcus, son \$199.00 USD tutarındaki yenileme ödemeniz kart sağlayıcınız tarafından onaylanamadı. Endişelenmeyin — API ve çalışma alanı erişiminiz sonraki 3 gün boyunca tamamen güvende kalacaktır. Servis kesintisini önlemek için tek tıkla güvenli Stripe faturanızı ödeyebilir ve kartınızı güncelleyebilirsiniz: 👉 https://invoice.stripe.com/i/acct_..."

Fraud Sentinel • Anomali ve Dolandırıcılık Kalkanı

Botnet Saldırıları ve Finansal Açıklara Karşı Otonom Devre Kesici

3. parti API'lerden gelen veriler her zaman iyi niyetli değildir. Stripe'tan normalde saniyede 1-2 webhook gelirken aniden saniyede 50 adet kart denemesi veya sahte abonelik akını başlarsa, HookSentinel akışı otonom olarak güvenli moda alır ve sunucunuzu çöküşten, cüzdanınızı ise ters ibraz (chargeback) cezalarından korur.

Card-Testing Kalkanı

Botnetler çalıntı kredi kartlarını sitenizde test ettiğinde saniyeler içinde yüzlerce charge.failed oluşur. HookSentinel atağı anında saptar, akışı karantinaya alarak Stripe ters ibraz (\$15/işlem) felaketini önler.

Otonom Devre Kesici

Bir kupon açığı veya döngü hatası sonucu sunucunuza anormal yük bindiğinde, akış güvenli modda durdurulur. Stripe'a 200 dönmeye devam edilerek endpoint ban'i riski bertaraf edilir.

Acil Durum Bildirimi

Slack ve Discord kanallarınıza anlık kırmızı alarm düşer: "Olağan dışı webhook aktivitesi saptandı, akış güvenli modda karantinaya alındı." Tek tıkla panelden inceleyip devam ettirebilirsiniz.

Devre Kesici Güvenlik Protokolü
Sliding-Window Heuristic + AI Behavioral Model
Normal Baz: 1-2 req/s→Spike > 6 req/10s: Safe Mode Tripped
Multi-Region Failover • Coğrafi Yedeklilik & Sıfır Kesinti

AWS veya Vercel Bölgesi Tamamen Çökse Bile: Veri Akışı Asla Durmaz

Sunucunuzun barındığı AWS (us-east-1), DigitalOcean veya Vercel veri merkezinde internet bağlantısı tamamen kopsa (DNS çökmesi, fiber kesintisi veya 504 Gateway Timeout), HookSentinel webhook akışını milisaniyeler içinde belirlediğiniz Yedek Sunucuya (Secondary/Backup Region) otonom olarak yönlendirir.

Edge Yönlendirme TopolojisiHookSentinel Autonomous Region Switcher
Failover Reroute: ~14msHMAC Byte Untouched
1. Webhook GirişiStripe / Shopify
Global Edge Proxy

Webhook 12ms edge gecikmesiyle HookSentinel ağına ulaşır. Ham imza baytları doğrulanmak üzere kilitlenir.

2. Ana Sunucu Çökmesi504 / UNREACHABLE
AWS us-east-1 (N. Virginia)

Bölgesel veri merkezi kesintisi, DNS çözümlenememe veya sunucu çökmesi saptanır.

3. Otonom RerouteHTTP 200 OK
AWS eu-central-1 (Frankfurt)

HookSentinel baytları hiç değiştirmeden Frankfurt yedek sunucunuza iletir. Sıfır veri kaybı ile teslim edilir.

Gerçek Senaryo: SaaS ana sunucunuz Vercel iad1 bölgesinde 504 verdiğinde, HookSentinel aynı isteği Cloudflare Worker veya Frankfurt Hetzner sunucunuza aktarır.
Panelde İncele →
Bulutlar Arası Özgürlük (Multi-Cloud)

Tek bir bulut sağlayıcısına mahkum kalmayın. Ana sunucunuz AWS'te, yedek sunucunuz DigitalOcean veya Hetzner'da olabilir; HookSentinel heterojen altyapılarda çalışır.

HMAC & İmzaların Şeffaflığı

Yedek bölgeye yönlendirilen webhook'ta Stripe, Shopify veya GitHub HMAC imzası bozulmaz. Yedek sunucunuzdaki imza doğrulama kodu hatasız çalışır.

Sıfır Kesinti (Zero-Downtime SLA)

Stripe hiçbir zaman “Webhook endpoint responding with 504” e-postası göndermez ve endpoint'inizi devre dışı bırakmaz. Gelir akışınız kesintisiz akar.

Localhost CLI • ngrok Katili • Sıfır Ayarla Geliştirici Tüneli

Elveda ngrok, Rastgele URL'ler ve Port Forwarding Çilesi

Yerel bilgisayarınızda (localhost) kod yazarken Stripe veya Shopify webhook'u test etmek için ngrok veya localtunnel hesaplarıyla uğraşmayın. Tek bir terminal komutuyla (hs listen 3000) canlı HookSentinel proxy'sine gelen tüm webhook trafiğini anında yerel makinenize aynalayın.

bash • Developer Local Machine (~/my-saas)
npx hooksentinel listen 3000
$npx hooksentinel listen 3000 --endpoint stripe-payments
▲ HookSentinel CLI (v1.0.0) — Zero-Config Webhook Mirroring
[✓] Connected to HookSentinel Hub (https://hooksentinel.dev)
[✓] Active tunnel established for endpoint: stripe-payments
[✓] Forwarding incoming live webhooks -> http://localhost:3000/api/webhooks
Canlı Webhook Trafiği Dinleniyor...
⚡ [19:42:15] Webhook Received: customer.subscription.created (evt_1Nxe4a...)200 OK (18ms)
↳ Preserved Headers: stripe-signature, content-type • Raw Bytes Verified
⚡ [19:43:02] Webhook Received: invoice.payment_failed (evt_3Mx01p...)500 ERR (12ms) - Captured in DLQ
↳ Yerel kodunuzda breakpoint koyun, hatayı düzeltin ve HookSentinel panelinden tek tıkla yeniden oynatın!

Neden Geliştiriciler ngrok Yerine HookSentinel CLI Kullanıyor?

Geliştirici Özelliğingrok (Free/Paid)Stripe CLIHookSentinel CLI (hs)
Sabit Prodüksiyon Webhook URL'i❌ Her restartta değişirYok (Sadece test mode)✅ Sabit Edge URL (Sıfır Güncelleme)
Çoklu Sağlayıcı Desteği (Stripe, Shopify, GitHub...)⚠️ Ham HTTP Tüneli❌ Yalnızca Stripe✅ Tek Tünelle Tüm Sağlayıcılar
HMAC İmza Doğrulama Şeffaflığı⚠️ Proxy başlıkları bozulabilir⚠️ Farklı test secret üretir✅ Ham baytlar ve imzalar %100 aynı
Canlı Prodüksiyon Trafiğini Aynalama❌ Canlıyı kesmek gerekir❌ Canlı trafiği çekemez✅ Canlı akış bozulmadan aynalanır
Time-Travel JSON Değiştirip Tekrar Ateşleme❌ Yok❌ Yok✅ Panelden değiştirip lokale tekrar yolla
Engineering Guarantees

Sıkça Sorulan Sorular & Teknik Güvenceler

Kıdemli mühendislerin ve CTO'ların canlı ödeme trafiğini teslim etmeden önce sorduğu kritik sorular:

Çoğu genel API Gateway ve proxy aracı gelen JSON yükünü deserialize edip tekrar serialize eder. Bu işlem anahtarların sırasını, boşlukları (whitespace) veya unicode karakterleri değiştirdiği için HMAC-SHA256 doğrulaması çöker. HookSentinel, gelen HTTP isteğini byte-stream (ham bayt) seviyesinde klonlar ve hiçbir JSON ayrıştırması yapmadan doğrudan hedef sunucunuza aktarır. Mevcut stripe.webhooks.constructEvent kodunuz 1 karakter bile değişmeden %100 çalışmaya devam eder.

Straightforward Pricing

No sales calls. No custom enterprise tiers. Cancel anytime.

DEVELOPER
$0/ mo

For staging, side projects, and testing.

  • ✓ 3,000 requests / mo
  • ✓ 3-day log retention
  • ✓ Slack & Discord alerts
  • ✓ 1-Click Localhost Replay
Start Free
SaaS Kurucularının Seçimi • En Popüler
PRO (SOLO FOUNDER)RECOMMENDED
$19/ mo

Tekil bir SaaS girişiminin tüm Stripe, Shopify ve Twilio webhook trafiğini rahatlıkla kaldırır.

  • ✓ 50,000 istek / ay (Günde ~1.600 işlem)
  • ✓ 30 Gün ham payload & imza kasası
  • ✓ 1-Click Replay (Prod & Localhost)
  • ✓ Sınırsız proxy endpoint & rota
  • ✓ Otomatik üstel yeniden deneme (Backoff)
  • ✓ Shadow Staging klonlama desteği
Hemen Canlıya Al
SCALE
$49/ mo

For agencies and high-volume systems.

  • ✓ 250,000 requests / mo
  • ✓ 90-day payload retention
  • ✓ Team audit logs
  • ✓ Priority global edge routing
Get Started
Değer Kanıtı • The Build vs. Buy Reality

"Tek bir sessiz Stripe hatası, $19'lık aylık aboneliğimizden çok daha fazlasına mal olur. HookSentinel, sunucunuz çöktüğünde sağlayıcıların endpoint'inizi engellemesini (ban) önleyen tek hava yastığıdır."