Backend systems
HookGuard
Payment webhook reliability & risk gateway
Receives payment events, prevents duplicate decisions, queues asynchronous risk scoring, and exposes operational telemetry.
Architecture & evidence
Architecture
The problem
Payment webhooks can be repeated, retried concurrently, or interrupted by worker restarts. The gateway must keep delivery fast and risk decisions idempotent.
System architecture
Go webhook ingress, Redis Streams, and Rust risk-scoring workers separate acknowledgement from asynchronous processing. Shared event IDs and atomic decision publication prevent duplicate risk-decision records.
Evaluation
The throughput figure comes from a 60-second local benchmark with 735,006 accepted requests. Replay verification covers more than one million webhook deliveries. The classifier is evaluated on 2,000 held-out transactions.
Latency boundary
46.46 ms is p99 acknowledgement latency. The separate 196 ns p99 figure measures in-process scoring only.
What I built
- Sustained 12,249 payment events/sec at 46.46 ms p99 acknowledgement latency in a 60-second local benchmark using atomic deduplication, enqueueing, and asynchronous processing; all 735,006 requests were accepted.
- Produced zero duplicate risk-decision records across 1M+ replayed webhook deliveries using shared event IDs and atomic decision publication, with concurrent-retry and worker-restart verification.
- Achieved 0.95 F1 versus a 0.87 rules baseline on 2,000 held-out transactions, with 196 ns p99 in-process scoring, using a calibrated lightweight classifier and reproducible evaluation pipeline.
Explore the implementation
Source code, setup instructions, and project documentation are available in the repository.