The Outbox Pattern for Reliable Events
Every distributed system I have built in fintech eventually runs into the same uncomfortable question: how do you change your database and tell the rest of the...
Every distributed system I have built in fintech eventually runs into the same uncomfortable question: how do you change your database and tell the rest of the...
Every payments engineer eventually meets the same enemy: two requests that arrive at almost the same instant, both convinced they are operating on the truth. A...
Fraud detection is one of those problems that looks deceptively simple from the outside. Someone makes a payment, you decide whether it is legitimate, and you...
Every distributed payments platform I have built eventually arrives at the same uncomfortable truth: messages get delivered more than once. Not occasionally,...
Every payment platform I have run eventually develops a relationship with failure. Not the catastrophic kind that wakes you at three in the morning, but the...
Every engineering team I have led eventually reaches the same uncomfortable moment: a release is ready, the code is merged, and yet nobody is quite willing to...
Every payments company eventually runs into the same uncomfortable truth: the money you think you have and the money you actually have are two different...
Every engineer who has built a payments platform eventually runs into the same uncomfortable truth: the moment your system spans more than one database, one...
Every few years a new engineer joins one of my teams, looks at our ledger code for the first time, and asks the same question: why are there two rows for every...
Caching is one of those topics that sounds simple until you ship it. Add a cache, serve a few requests from memory, watch your latency graph drop, and call it...
Somewhere in every engineering organization there is a decision that nobody can explain. A queue sits between two services that could just as easily call each...
Few pieces of infrastructure get reached for as reflexively as the message queue. Somewhere in the lifecycle of every growing system, an engineer looks at a...