Architecture & CloudConference50min
Change is inevitable: versioning event-driven systems
This session explores practical techniques and tools for evolving event-driven systems safely. It focuses on managing message contract changes, preserving compatibility, avoiding downtime, and reducing cross-team disruption so developers can handle change requests confidently without breaking dependent services.
talk.summaryAiDisclaimer
Laïla BougriâParticular Software
Building an event-driven system is anything but trivial. However, once you make it past the sea of pub-sub vs. command-response debates and the service boundaries conundrum, you'll soon face the inevitable: change. The conversations that follow sound all too familiar... "Who's subscribed to this message?" "Do other services depend on this field in the payload?" "Why on earth is that thing in the payload?" "That service should never rely on this data!" And, of course, the obvious "Can't we -just- remove this?"
But are those the right questions to ask? As software developers, we aim to be agents of change, not chaos. To achieve this, we need to understand the impact of tweaking a message contract without breaking half of the system or forcing other teams beyond their deadlines. We should prioritize techniques that ensure compatibility while also considering how long that compatibility needs to be sustained. Oh, and let’s not forget that we’re supposed to solve this problem with zero downtime, as our users are spread across every time zone. In this session, we’ll discuss practical techniques and tooling that can enable the evolution of your event-driven system so that, next time a stakeholder approaches with a change request, your heart doesn't sink to the floor.
But are those the right questions to ask? As software developers, we aim to be agents of change, not chaos. To achieve this, we need to understand the impact of tweaking a message contract without breaking half of the system or forcing other teams beyond their deadlines. We should prioritize techniques that ensure compatibility while also considering how long that compatibility needs to be sustained. Oh, and let’s not forget that we’re supposed to solve this problem with zero downtime, as our users are spread across every time zone. In this session, we’ll discuss practical techniques and tooling that can enable the evolution of your event-driven system so that, next time a stakeholder approaches with a change request, your heart doesn't sink to the floor.
Laïla Bougriâ
Laila Bougria is a Solutions Architect and Engineer with over two decades of industry experience. She's a keynote speaker, a Microsoft MVP in Azure and Developer Technologies, and frequently shares her knowledge and insights at conferences worldwide. Currently, Laila is busy building NServiceBus at Particular Software and solving distributed riddles. She specializes in event-driven systems and is passionate about critical thinking. When she's not immersed in complex problems or code, Laila enjoys indulging in her favorite pastime - knitting! She finds that tangling the yarn into beautiful patterns helps untangle her thoughts.