Particular Software, Poland
Szymon Pobiega used to work on various business software for almost a decade. Of all the ideas and patterns he learnt along the way, asynchronous messaging had the most profound impact. He built his first micro service system in 2010, well before it became fashionable.
Over three years ago Szymon quit consulting and joined Particular Software with hope to use his field experience to build tools for developing distributed systems. Szymon is focused, in Particular (pun intended), on message routing patterns and handling of failures. Besides that he enjoys building remotely controlled vehicles with Lego.
— TOPIC —
Distributed System Messaging: Excuse Me, My Bill Does Not Match My Order
In a distributed system messages sometimes get lost or duplicated. That’s a fact of life. It is really hard to execute business logic that assumes one trigger equals one outcome when a trigger can be lost or fire twice. One way of dealing with the problem is taking advantage of natural idempotency of some operations, e.g. adding element to a set. But let’s face it, most business code is more complex than that.
Next in our arsenal comes immutability, an idempotency’s old friend. Sadly, sometimes even that is not enough as we desperately need to mutate some state.
Let Szymon tell you a story of a team who struggled with all these problems. Disclaimer: do not expect a happy end.