I webhook falliscono silenziosamente alle 3 di notte. Servizi esterni come Stripe o GitHub tentano la consegna, riscontrano un timeout temporaneo sul tuo server ed eliminano l'evento dopo pochi tentativi. Le soluzioni SaaS tradizionali addebitano costi mensili gonfiati per ogni payload in ingresso, mantenendo inoltre pieno accesso al contenuto dei tuoi JSON interni.
L'Architettura Dietro HookSentry CLI
HookSentry CLI è sviluppato in Go per garantire il minimo consumo di CPU e assenza di memory leak anche sotto carico elevato. Funzionando come reverse-proxy edge, HookSentry valida immediatamente le firme HMAC dei payload e risponde alle chiamate con un 200 OK. La lavorazione effettiva viene separata in una coda di worker asincroni gestita da uno storage embedded.
Integrazione della Verifica HMAC in Python
Agendo HookSentry come punto d'ingresso principale, le tue applicazioni Python downstream devono semplicemente elaborare gli eventi inoltrati verificando l'header di sicurezza HMAC. Ecco un'implementazione pulita:
import hmac
import hashlib
from flask import Flask, request, jsonify
app = Flask(__name__)
HOOKSENTRY_SECRET = b"sentry_live_secret_key_8f92a"
def verify_hooksentry_signature(payload: bytes, header_sig: str) -> bool:
computed_sig = hmac.new(HOOKSENTRY_SECRET, payload, hashlib.sha256).hexdigest()
return hmac.compare_digest(f"sha256={computed_sig}", header_sig)
@app.route("/webhook/receiver", methods=["POST"])
def handle_webhook():
signature = request.headers.get("X-HookSentry-Signature", "")
if not verify_hooksentry_signature(request.get_data(), signature):
return jsonify({"status": "forbidden", "reason": "invalid HMAC"}), 403
event = request.get_json()
print(f"Processing verified event: {event.get('id')}")
return jsonify({"status": "acknowledged"}), 200Dead-Letter Queue e Backoff Esponenziale
Quando un worker a valle restituisce un codice di errore 500 o perde la connessione, HookSentry pianifica automaticamente i tentativi di re-invio tramite un algoritmo di backoff esponenziale con jitter. Se tutti i tentativi falliscono, il payload viene trasferito in una Dead-Letter Queue (DLQ) locale.
Dashboard di Replay con un Clic
Invece di costringere gli sviluppatori a ricreare manualmente le chiamate HTTP fallite dai log del database, HookSentry include un'interfaccia web minimale. È possibile filtrare i payload falliti per tipo di evento o intervallo temporale, ispezionare gli header ed eseguire il replay degli eventi nella pipeline con un solo clic.
Deployment Senza Dipendenze Esterne
HookSentry non richiede istanze Redis o database PostgreSQL esterni. Viene fornito come binario statico autonomo e distribuito con configurazioni Docker Compose multi-architettura pronte per l'ambiente di produzione.