Recurring Payments
A recurring payment system built from scratch, with a next-generation version in progress.
Problem
Reliably schedule and execute repeating payments while handling failures, retries, and changing mandates over long time horizons.
Architecture
A scheduler that materializes due payments into a durable queue, with workers executing charges idempotently and updating mandate state.
Technical challenges
Correctly handling retries and backoff, mandate lifecycle changes, and ensuring no payment is skipped or double-charged.
Solution
Durable scheduling with idempotent execution, explicit mandate state, and dead-letter handling for payments that need manual review.
Scale
Handles large volumes of scheduled, repeating transactions.
Lessons learned
Long-lived scheduled work needs the same idempotency discipline as synchronous payments — time just makes the edge cases more likely.
Want to talk through the engineering behind systems like this?
Start a conversation