Speaker

Szymon Pobiega

Szymon Pobiega

Engineer particularly interested in software

Kraków, Poland

Actions

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 https://exactly-once.github.io/, 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.

Area of Expertise

  • Information & Communications Technology

Topics

  • Messaging
  • Distributed Systems
  • microservices
  • NServiceBus
  • Architecture
  • Software Architecture
  • Microservice Architecture
  • Solution Architecture
  • RabbitMQ
  • Azure Service Bus
  • Message Queues

The Outbox

The Outbox pattern is the industry-standard for deduplicating messages. In its most basic form it is about storing the messages you are about to send before proceeding to dispatch them. This approach allows the messages to be generated atomically with the business state transition saving us from multitude of anomalies with creepy names such as Zombie Records and Ghost Messages.

This talk is a deep dive into the Outbox exploring less known aspects of the pattern. In the first part we are going to discuss what drives the dispatching of the Outbox messages with pros and cons of popular drivers such as client, retries and polling/timer.

In the second part the focus is going to be on the deduplication function that is often part of the Outbox implementation. We'll look at the challenges related to managing the ever-growing set of deduplication information and discuss alternatives that do not require keeping track of every single processed message.

After the session you will be able to assess the quality of Outbox pattern implementations you find in available messaging frameworks, as well as build one yourself to best match your environment (language, runtime, database, hosting etc.)

The route of a message

Regardless of industry trends like microservices or structured monoliths, asynchronous message-driven systems are on the rise. This can be attributed to the ever growing need to break down complex business processes into a series of small steps connected by a reliable communication mechanism, that can be traced back at least to the landmark Sagas paper by Hector Garcia-Molina and Kenneth Salem.

While these systems inevitably grow and evolve, the key challenge of engineers becomes routing of all the messages that glue the business processes together. In this talk I'll attempt to outline some of the biggest and most common issues and suggest common patterns of dealing with them.

Finally we'll discuss a model for thinking about asynchronous message-driven systems that allows you to make sense of all the routing complexity stemming not only from the business itself but also from all the cruft that you, the architect, have to deal with, such as multiple hosting environments, legacy message brokers, rapidly changing requirements etc.

Cloud DeveloperDays 2020 Sessionize Event

May 2020

NDC London 2020 Sessionize Event

January 2020 London, United Kingdom

Szymon Pobiega

Engineer particularly interested in software

Kraków, Poland

Actions

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top