DevDays Moscow 2021 Online Edition

Szymon Pobiega

Должность: Software Engineer

Компания: Particular Software

Страна: Poland


Szymon works an engineer at Particular Software, the makers of NServiceBus. His main areas of expertise are Domain-Driven Design and asynchronous messaging. He is especially interested in the intersection of these two topics — in the patterns and tools for ensuring all messages are processed exactly once and in the correct order.

Szymon is a co-author of, a website dedicated to all things related to messaging.

In his free time Szymon plays with Lego, building models of real-life off-road vehicles.


Building Robust and Reliable Distributed Systems in the Cloud

The workshop focuses on building line-of-business fault-tolerant cloud-based distributed systems. Such systems cannot afford to lose messages (nobody wants their order for Christmas gifts to be lost) nor to get them duplicated (that second Porsche in the drive way — who ordered that?). Such systems were, in the past, built based on the firm ground established by either distributed transactions or large database instances that served also as messaging brokers.

These technologies are either too expensive, too cumbersome or simply not available in the cloud. In this workshop we will show you how robust and reliable systems can be build out of inexpensive components. The key to achieving that goal is learning how to deal with failures of all kinds.

Join me in the series of hands-on exercises interleaved with short lectures after which you’ll have good understanding of most of the things that can go wrong when processing messages and enough knowledge to either build build a bullet-and-duplicate-proof message processor or (even better) find a framework that implements one for you.


— Chaos engineering
— Dealing with message broker failures when receiving messages
— Dealing with message broker failures when sending out messages
— Dealing database failures and avoiding ghost messages
— De-duplication based on message ID
— Deterministic message ID generation
— Deterministic message content generation
— Atomic store-and-publish


After attending the workshop you’ll know:
— The importance of chaos engineering in making sure complex distributed systems work as expected
— What kind of failures to expect when build message handling logic (broker, database) and what strategies to use to handle these problems
— The importance of assigning message IDs
— The definition of idempotence and how it relates to software
— What to look for when selecting the messaging framework for your next system

Целевая аудитория

Senior developers, technical leads and architects who want to learn more about building asynchronous distributed systems.

Технические требования

A computer with VisualStudio 2019 (any edition) installed. The workshop exercises are written in C# but knowledge of C# is not a requirement as all exercises are very short and focused and don’t require intimate knowledge of advanced language features.

« Назад