Distributed processes
A process like placing an order touches several services: stock, payments, shipping. No database transaction covers them all, so each step commits on its own. You’ll understand how to coordinate such processes with events, what to do when a step fails, and how to stay correct when messages are retried or arrive out of order.
The first two articles explain sagas, process managers and choreography, and show them in code, including undoing a step that failed. The next three show how message processing works underneath: how a processor remembers where it stopped, and how to spread the work when you have many tenants. Two more deal with events arriving in an unexpected order. The last two are about modelling workflows, with TypeScript types and as a design for a workflow engine.
Start with the first two. Read the rest when the problem comes up.

Saga and Process Manager - distributed processes in practice
2021-02-10What can go wrong with distributed systems? Everything! I like to compare distributed systems to Rocky Balboa fighting the last round with Apollo Creed. He is staggering…
Event-driven distributed processes by example
2022-07-13Some time ago, I wrote the general rules on processing the event-driven services. check my article Saga and Process Manager - distributed processes in practice. It…
Consumers, projectors, reactors and all that messaging jazz in Emmett
2025-12-01Did you know that you can build an event store in one hour? I even did it a few times on the conference stage. Actually, it took me usually around 25 minutes; the rest…
Checkpointing the message processing
2025-12-08Let’s start by asking you two questions. What Super Frog has to do with messaging? When was the last time you wrote if statements in SQL? If it’s been a long time, have…
Multi-tenancy and dynamic messaging workload distribution
2025-12-15There are several reasons why I’m blogging. The first one is that I forget, and writing helps me to remember and organise my findings. The other is that I like to share…
Dealing with Race Conditions in Event-Driven Architecture with Read Models
2025-10-20My events came out of order! What should I do?! Are you familiar with the term “phantom record” and its benefits? No? Let me explain it to you today. Everyone has a plan…
Handling Events Coming in an Unknown Order
2025-11-03After the last article on Dealing with Race Conditions in Event-Driven Architecture with Read Models, I got such a question from Ben: You described the scenario where you…
How TypeScript can help in modelling business workflows
2024-01-28TypeScript is an intriguing language. Some say that its type system, by itself, is Turing Complete. Some take it to the extreme and even implement Flappy Bird in…
Workflow Engine design proposal, tell me your thoughts
2025-07-28Welcome to the new week! As you may know, I’m building Emmett - a library/framework aiming to make building business-focused apps smoother with an event-driven approach…