We had duplicate payouts twice last year. Both times: client retried after a timeout, server had already pr…
Aarav Sharma
Senior Backend Engineer @ Paylane | Java, Spring Boot, Kafka | Building payment rails that don't wake you up at 3am
Aarav Sharma
Senior Backend Engineer @ Paylane | Java, Spring Boot, Kafka | Building payment rails that don't wake you up at 3am
Rohan Malhotra30 Sept 2026
Point 3 is the one everyone gets wrong. We also return 409 while IN_PROGRESS so clients back off instead of hammering.
Dhruv Joshi30 Sept 2026
Please share the filter code! We have the exact same timeout + retry problem on invoice creation.
Riya Agarwal1 Oct 2026
Sharing this with my team. We've been debating Redis vs Postgres for this, the single-transaction argument settles it.
Aarav Sharma1 Oct 2026
@Riya Redis is fine for rate limiting, but for correctness you want it in the same DB as the write. Will post the code this weekend.