Ausgewählte Projekte

Backend-Infrastruktur

Hookrelay.

Zustellung ist ein Prozess. Zuverlässigkeit ein System.

Dauerhafte, signierte Webhooks mit Jitter-Retries, abgesicherten Worker-Leases und Wiederaufnahme aus der Dead-Letter-Queue.

Eigenständiges Open-Source-Projekt
GoPostgreSQLHMACSKIP LOCKED
KONZEPTUELLE ARCHITEKTUR
  1. 01Idempotentes Publizieren
  2. 02PostgreSQL-Warteschlange
  3. 03Worker mit Lease
  4. 04HMAC-signiertes HTTP
  5. 05Retry / Dead Letter

Die technische Aufgabe

Ein Ereignis zu publizieren ist einfach. Es trotz langsamer oder ausgefallener Empfänger zuverlässig zuzustellen verlangt ein System. Hookrelay ist ein eigenständiges Open-Source-Projekt mit dauerhaftem Fan-out, Signaturen, Retries, Inspektion und Dead-Letter-Replay.

Dauerhafte Koordination

Die Go-API speichert Ereignisse und Zustellungen in PostgreSQL. Worker beanspruchen fällige Arbeit mit SELECT … FOR UPDATE SKIP LOCKED. Sperren gelten nur für die Beanspruchung, nie während HTTP-Aufrufen.

Leases und Fencing-Tokens verhindern, dass verspätete Worker neueren Zustand überschreiben. Arbeit beanspruchen, ausführen und das Ergebnis speichern sind getrennte Fehlergrenzen.

Fehler, Wiederholung und Identität

Begrenztes exponentielles Backoff mit Jitter, Request-Timeouts und Retry-After für 429/503 steuern Wiederholungen. Nach dem Limit geht die Zustellung in die Dead-Letter-Queue. Replay ermöglicht gezielte Wiederaufnahme; 410 deaktiviert den Endpunkt.

Idempotenzschlüssel machen wiederholtes Publizieren eindeutig. Geänderter Inhalt mit demselben Schlüssel wird abgelehnt. HMAC-SHA256 folgt Standard Webhooks. Empfänger müssen Signaturen prüfen und IDs deduplizieren.

Garantien und Grenzen

Das Modell ist At-least-once, nicht Exactly-once für externe Effekte. Ein Empfänger kann erfolgreich verarbeiten, obwohl der Sender keine Antwort sieht. Die Browserdemo ist vereinfacht; das Repository dokumentiert Tests, Betrieb und PostgreSQL-Tradeoffs.

Das Modell erlebbar machen.

MODELL / MINDESTENS EINMAL ZUSTELLEN Läuft lokal
01Ereignis
02Zustellung
03Fehler / Ergebnis
04Wiederholung
05Endzustand
00 / 04

Bereit, ein Ereignis zu veröffentlichen.

Lernsimulation · Verkürzte Zeiten; vereinfachtes Worker-Modell
WEITER ENTDECKENWitness
Alle ausgewählten Projekte