
Payment Reliability Lab
What breaks in a payment flow, and how a system survives it.
An interactive simulator of what goes wrong in a payment flow: timeouts, duplicate and out-of-order webhooks, acquirer outages. You inject the faults and watch retries, idempotency, failover and reconciliation respond.
Designed the event-sourced state model, the fault injection and the property-based test suite.
Key Achievements
- Payment state derived from an append-only event log and a single transition table, checked by both the orchestrator and the reducer
- Idempotency in both directions: per-acquirer idempotency keys on outgoing calls and event-id deduplication of incoming webhooks
- HMAC-SHA256 webhook signatures verified with a constant-time comparison
- Property-based tests (fast-check) showing that state never regresses and redeliveries don't change the outcome
