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) Level: Intermediate
Secondary topics:  Best Practice

Who is this presentation for?

distributed software developers

Prerequisite knowledge

Regular basic programming skills. Some idea of what microservice or distributed architecture is.

What you'll learn

Messages get duplicated Duplicate messages are a threat to the business Infrastructure cannot deduplicate messages for you You can deal with duplicate messages using a set of well-known patterns


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.
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.
As a third option, I’ll show you the Outbox pattern which makes distributed transaction look like a rusty old timer. Join me in this talk and make sure you’ll never refund a customer twice, again.

Photo of Szymon Pobiega

Szymon Pobiega

Particular Software

Szymon Pobiega used to work on various business software for almost a decade. Of all the ideas and petterns he learnt along the way, messaging had the most profound impact. He built his first micro service system with MSMQ and NServiceBus 1.9 some 9 years ago and this was a life-changing experience.

Over three years ago Szymon quit consulting and joined Particular Software with hope to use his field experience to make NServiceBus even better. 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.

Leave a Comment or Question

Help us make this conference the best it can be for you. Have questions you'd like this speaker to address? Suggestions for issues that deserve extra attention? Feedback that you'd like to share with the speaker and other attendees?

Join the conversation here (requires login)