Here’s a scenario almost every product team hits sooner or later. Sign-up has been running for two years. Somebody finally notices that customers.email was never unique, and the login code quietly…
Reporting is slow. The query behind the monthly dashboard filters events by account and date, and events is by far the biggest table in the database. Everyone agrees it needs an index. Nobody wants to…
Inorderly makes one promise above the rest: the same events give the same output, byte for byte, however they arrived. That’s an easy thing to say and an easy thing to get slightly wrong, so most of…
Events don’t arrive the way they happened. A webhook gets retried and the same order turns up twice. A payment service’s clock runs behind the checkout’s, so the payment looks older than the order it…
Two systems that read the same events should end up in the same state. They often don’t, and the reason is rarely the code. It’s the order. A withdrawal that comes before a deposit gets declined; the…
Exchanges send market data twice, over two lines usually called A and B. Each line drops a packet now and then, and rarely the same one. Take both, keep the first copy of each tick, and you get a…
Agents have started trying things before they commit. A coding agent sketches three plans for a refactor and keeps the one whose tests pass. A travel agent holds a train, a flight and a coach until…
Multivergence 0.1 is out, open source under the Apache License 2.0. It’s a state engine for software that keeps several possible futures open at once: fork the state into branches, give each a weight…
A state engine for branching futures makes a handful of promises. A write to one branch never shows up in another. A promote happens completely or not at all, even if the process dies halfway. The…
The name is two halves of an idea. Divergence is the moment one state becomes several: an agent forks three plans and each goes its own way. Convergence is the moment they become one again: the…