Engineering the Future of Software
29–31 Oct 2018: Tutorials & Conference
31 Oct–1 Nov 2018: Training
London, UK

I shall say this only once

Szymon Pobiega (Particular Software)
14:1515:05 Monday, 29 October 2018
Application architecture
Location: Park Suite (St. James / Regents)
Secondary topics:  Best Practice

Who is this presentation for?

  • Distributed software developers

Prerequisite knowledge

  • Familiarity with basic programming concepts, microservices, and distributed architecture

What you'll learn

  • Understand how messages get duplicated, why duplicate messages are a threat to the business, and how to deal with duplicate messages using a set of well-known patterns


I shall say this only once. And you shall do it only once. Exactly once. That’s a very common assumption for most of business software. One trigger equals one outcome. As it turns out, it is easier said than done.

Szymon Pobiega explains why duplicate messages are a fact of life in distributed systems (and why no infrastructure can help you). Fortunately, Szymon also shares tips on how to deal with nasty duplicate zombie messages.

One way to solve the problem is to prevent messages from getting duplicated in the first place. This requires transactions spanning data stores and messaging systems, which is neither fast nor widely available. Another way is taking advantage of natural idempotency of some operations (e.g., adding an item to a set). But let’s face it, most business code is more complex than that. A third option is the outbox pattern, which makes distributed transaction look like a rusty old timer.

Join Szymon to ensure you’ll never refund a customer twice again.

Photo of Szymon Pobiega

Szymon Pobiega

Particular Software

Szymon Pobiega is an engineer at Particular Software, where he is focused in particular (pun intended) on message routing patterns and handling of failures. Szymon worked on business software for almost a decade. Of all the ideas and petterns he learned along the way, messaging had the most profound impact. He built his first microservice system with MSMQ and NServiceBus 1.9 some nine years ago, which was a life-changing experience. Today, he hopes to use his field experience to make NServiceBus even better. In his freetime, he enjoys building remotely controlled vehicles with Legos.