{
    "componentChunkName": "component---src-templates-page-template-js",
    "path": "/en/light-and-dark-side-of-eda-workshop/",
    "result": {"data":{"page":{"id":"3d5adcf4-b1be-53ae-b936-1de2e944996b","html":"<p><strong>Event-driven architecture helps you reflect the business process in code and makes it easier to work with the business. It can also reduce dependencies between parts of the system, but only if the system is split well.</strong></p>\n<p><strong>Without good modelling, you get the worst kind of dependencies: hidden ones.</strong> Services look independent, yet a change in one breaks another.</p>\n<p>A good model is only half the job, though. EventStorming sticky notes won’t tell you whether you need a queue, or what happens when a message arrives twice or out of order.</p>\n<p>They won’t tell you how to change a contract without breaking another team’s service either. The team discusses the business process together, and then everyone goes back to the code and decides alone how to coordinate the process, which queue to use and how to ensure delivery, ordering, consistency and idempotency. The consequences of those decisions usually show up only in production, when messages get lost, duplicated or processed in the wrong order.</p>\n<p>In this workshop, we’ll go all the way from business requirements, through the process model and the technical model, to the implementation. Step by step, we’ll look at how requirements shape the technical solution. How do you split a system so that the dependencies between its parts are explicit? When does a queue help, and when does it only add complexity? How do you provide the guarantees the business actually needs? How do you test a flow and catch incompatible contract changes before another team notices them?</p>\n<p>Throughout the workshop, we work on a single distributed business process, from the first sticky note to running code. We also cover some topics with smaller, separate examples.</p>\n<p><strong>No long lectures.</strong> Instead, there are lots of small tasks and group work. EventStorming and other modelling techniques aren’t the goal here. They’re tools for talking about the process and about how to turn the model into a working system. Participants in previous editions most often named exactly this path, from EventStorming to code examples, as the most useful part of the workshop.</p>\n<p>Along the way, we’ll also look at where GenAI helps with modelling and implementation, and where its output needs careful checking.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; height: auto\"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/26353fde6a003a86ab559fb7323948c8/0d3c4/workshop.jpg\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 66.5%; position: relative; bottom: 0; left: 0; background-image: url('data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAMFAv/EABYBAQEBAAAAAAAAAAAAAAAAAAEAAv/aAAwDAQACEAMQAAABcqZnLRJRP//EABoQAAMBAAMAAAAAAAAAAAAAAAECEgADETH/2gAIAQEAAQUCZgNz+JMs56shKG//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAbEAABBAMAAAAAAAAAAAAAAAAAAQISIRARMv/aAAgBAQAGPwIRJRLeXe8cn//EAB0QAAIDAAIDAAAAAAAAAAAAAAERACExQVFhcZH/2gAIAQEAAT8hZsWMjVh77lfTm4aTNy6gSPTs8f7P/9oADAMBAAIAAwAAABD7D//EABYRAQEBAAAAAAAAAAAAAAAAAAEAEf/aAAgBAwEBPxDSEv/EABYRAQEBAAAAAAAAAAAAAAAAAAEAEf/aAAgBAgEBPxDGRv/EABwQAQEAAgMBAQAAAAAAAAAAAAERACExQVFhsf/aAAgBAQABPxDaxKjgWht65yRnFC3We4wdTRcVvXzBWw0vwYoKdNLTXuMAUQi1v7n/2Q=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"workshop\"\n        title=\"workshop\"\n        src=\"/static/26353fde6a003a86ab559fb7323948c8/c60e9/workshop.jpg\"\n        srcset=\"/static/26353fde6a003a86ab559fb7323948c8/37402/workshop.jpg 200w,\n/static/26353fde6a003a86ab559fb7323948c8/4cda9/workshop.jpg 400w,\n/static/26353fde6a003a86ab559fb7323948c8/c60e9/workshop.jpg 800w,\n/static/26353fde6a003a86ab559fb7323948c8/6c738/workshop.jpg 1200w,\n/static/26353fde6a003a86ab559fb7323948c8/56dca/workshop.jpg 1600w,\n/static/26353fde6a003a86ab559fb7323948c8/0d3c4/workshop.jpg 3543w\"\n        sizes=\"(max-width: 800px) 100vw, 800px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n  </a>\n    </span></p>\n<p><strong>23 and 24 November, and 30 November and 1 December 2026, online, in English, PLN 699 EUR.</strong></p>\n<p><strong><a href=\"https://forms.gle/uMPEBpKjeP7FtN4k6\"><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 250px; height: auto\"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 22.499999999999996%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAFCAYAAABFA8wzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAsElEQVQY05WQzwqCYBDEV+tgFzMR+nOLKMRbUUnRoc7RKSghIoTyiX0KX8H8fh38oAwPdRh2GHZnd1YQSREBEaXBn1DqPZeKJs9KU38Avg+OA7Zd1mYDTBMsCzwPXLdirLSHKJFcCwrDKDdNZ3BP4BzB6QhxDEEA4QouESQPCJelmWl+JsvrL+z2YL6A9QZuVxgNoePCeAKHPey20La/o5cXIpJpoaj9Yav1yw8LzbMX813RmK6WlCgAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Sign up!\"\n        title=\"Sign up!\"\n        src=\"/static/454c8f0d91dd678f8273255e5ea05020/3e256/sign-up.png\"\n        srcset=\"/static/454c8f0d91dd678f8273255e5ea05020/36ca5/sign-up.png 200w,\n/static/454c8f0d91dd678f8273255e5ea05020/3e256/sign-up.png 250w\"\n        sizes=\"(max-width: 250px) 100vw, 250px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n    </span></a></strong></p>\n<h2 id=\"what-youll-learn\" style=\"position:relative;\"><a href=\"#what-youll-learn\" aria-label=\"what youll learn permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>What you’ll learn</h2>\n<p><strong>After the workshop, you’ll know how to:</strong></p>\n<ul>\n<li>understand what event-driven architecture really is, and what it isn’t</li>\n<li>work with requirements and talk to the business so that you understand the process, not just list its features</li>\n<li>explore the domain step by step with EventStorming and Example Mapping instead of trying to model everything at once</li>\n<li>model the full process flow and draw boundaries in it so that dependencies between parts of the system are explicit</li>\n<li>look at the process up close and from a distance, and focus on what matters most at a given moment</li>\n<li>point out consistency and concurrency issues on the model and discuss them</li>\n<li>simulate how the system behaves on timelines and examples before any code is written</li>\n<li>decide whether you need a queue, and if so, which one and with what consequences</li>\n<li>ensure message delivery, correct ordering and idempotency, among others with the Outbox pattern</li>\n<li>coordinate a process in code with a Saga or a Process Manager</li>\n<li>test event-driven flows and catch incompatible contract changes</li>\n<li>fit the solution into your application architecture, for example CQRS or hexagonal architecture</li>\n</ul>\n<h2 id=\"is-this-workshop-for-you\" style=\"position:relative;\"><a href=\"#is-this-workshop-for-you\" aria-label=\"is this workshop for you permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Is this workshop for you?</h2>\n<p><strong>Yes, if you see any of these problems in your project:</strong></p>\n<ul>\n<li>after an EventStorming session, you have a full board, but nobody knows how to turn it into code</li>\n<li>queues end up in the system because “that’s how it’s done”, not because you need them</li>\n<li>services were meant to be independent, yet every bigger change requires deploying several of them at once</li>\n<li>messages get lost, duplicated or arrive in a different order than your code expects</li>\n<li>a change to one event breaks another team’s service, and you find out in production</li>\n<li>conversations about delivery guarantees and consistency end with “it’ll be fine” or “Kafka will handle it”</li>\n<li>the business process is split across several services, and nobody sees it as a whole</li>\n</ul>\n<p>The workshop is for developers, tech leads and architects who design event-driven systems, are starting to build them or have to maintain them. I’ve prepared the exercises in Java, TypeScript and C#, so you’ll work in a language you know.</p>\n<p><strong>This workshop isn’t for you</strong> if you’re looking for a course on a specific message broker or a lecture full of definitions.</p>\n<h2 id=\"how-it-works\" style=\"position:relative;\"><a href=\"#how-it-works\" aria-label=\"how it works permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>How it works</h2>\n<p><strong>The workshop is based on practice, not lectures.</strong> You’ll learn the theory by solving tasks. They’re short, and there are plenty of them. Each one ends with a discussion and a decision that the next one builds on. For most problems, I’ll show you several solutions, because in event-driven architecture there’s rarely a single right one.</p>\n<ul>\n<li><strong>Cohort format.</strong> We meet over two weeks, two days each week, from 9:00 to 15:00 CET. The workshop is intensive and demanding, so the break between the weeks gives you time to put everything in order and come back with questions.</li>\n<li><strong>Discord group.</strong> Throughout the workshop, you’ll have access to a group for participants. I’m there too and answer questions as they come up.</li>\n<li><strong>A small group of 5 to 12 people</strong>, so I can work with every team. The workshop will go ahead once at least 5 people have signed up.</li>\n<li><strong>Online, on Zoom, in English.</strong> We model on a shared Miro board. The workshop won’t be recorded.</li>\n<li><strong>After the workshop, you’ll get</strong> the code repository, access to the Miro board with the results of our work, an ebook on modelling event-driven workflows and additional materials grouped by topic.</li>\n</ul>\n<p><strong><a href=\"https://forms.gle/uMPEBpKjeP7FtN4k6\"><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 250px; height: auto\"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 22.499999999999996%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAFCAYAAABFA8wzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAsElEQVQY05WQzwqCYBDEV+tgFzMR+nOLKMRbUUnRoc7RKSghIoTyiX0KX8H8fh38oAwPdRh2GHZnd1YQSREBEaXBn1DqPZeKJs9KU38Avg+OA7Zd1mYDTBMsCzwPXLdirLSHKJFcCwrDKDdNZ3BP4BzB6QhxDEEA4QouESQPCJelmWl+JsvrL+z2YL6A9QZuVxgNoePCeAKHPey20La/o5cXIpJpoaj9Yav1yw8LzbMX813RmK6WlCgAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Sign up!\"\n        title=\"Sign up!\"\n        src=\"/static/454c8f0d91dd678f8273255e5ea05020/3e256/sign-up.png\"\n        srcset=\"/static/454c8f0d91dd678f8273255e5ea05020/36ca5/sign-up.png 200w,\n/static/454c8f0d91dd678f8273255e5ea05020/3e256/sign-up.png 250w\"\n        sizes=\"(max-width: 250px) 100vw, 250px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n    </span></a></strong></p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; height: auto\"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/f8f25cbf7400071cba78568aee322a57/8ebf5/workshop-online.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 56.49999999999999%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB/Ca1DAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAB60lEQVQoz22SS2sUQRSF+xfqL3LhxoXgxk1M0I0gIoIoJJJoIBA3Km7U9KjpTOaRZDr9qNet6pnoDHzSNQ/j6OJSVPe5p8459yZKaax1q6qVQjuPOn6PPtqn/HaIyj4gYYxzFuccIoI4QWuDiOek2+POrdu8fPaCRGQBWFTb4MTj6kvsqBsb4t3aFeGyrLXMZjPe7O3xaOsBm5tbJM7JXyDvA+JDJJmrcgQvNM0Yaa5w7b8F1hjDdDple3uHg3dvebX9nKSqNN7PSa14zs776PyE9iFrDOIcF2VFr59R9b8i5RDrfFQXFU5n7Lze4en9Jzy8u0VijF1ZbQnz/Bx9eYyVEBuC95yXNd3TDkX3E1L0Iy4SGhsV7u3vsnHzMfdubJDMg13atoTxT1Q/RXf2qa3ny/cj7LBDM/mFbyY436xF5CnKgotsxFl20VpWK8sxdN+gBykm3aWuC9LsmHpwNM/Omn8GsyQNk0AzCSQh/HlRrg0llkgEt9/as534cmDrpG6xdkkLXJIZJxSXI5wq5pkuVqNSiqrMUapCVzlOlaxvx7KS6+q0Cwx6HWyZYfwV1ui4LqejnE7nI1k3Zdg5RAafsX6MrNlvxSVKqdVQouXQUA1S9DClcg2nvR/4ehSznS+//6/lEAJ5nvMbL5I0K732ENUAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"workshop online\"\n        title=\"workshop online\"\n        src=\"/static/f8f25cbf7400071cba78568aee322a57/a331c/workshop-online.png\"\n        srcset=\"/static/f8f25cbf7400071cba78568aee322a57/36ca5/workshop-online.png 200w,\n/static/f8f25cbf7400071cba78568aee322a57/a3397/workshop-online.png 400w,\n/static/f8f25cbf7400071cba78568aee322a57/a331c/workshop-online.png 800w,\n/static/f8f25cbf7400071cba78568aee322a57/8537d/workshop-online.png 1200w,\n/static/f8f25cbf7400071cba78568aee322a57/8ebf5/workshop-online.png 1536w\"\n        sizes=\"(max-width: 800px) 100vw, 800px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n  </a>\n    </span></p>\n<h2 id=\"agenda\" style=\"position:relative;\"><a href=\"#agenda\" aria-label=\"agenda permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Agenda</h2>\n<p><strong>Day 1: The business process</strong></p>\n<ol>\n<li>Working with requirements and with the business: how to understand the process, not just list its features</li>\n<li>EventStorming and Example Mapping: exploring the domain step by step and talking about the process</li>\n<li>The process as the starting point for EDA: a good model makes implementation easier, and implementation shows what the model is missing</li>\n</ol>\n<p><strong>Day 2: From process to model</strong></p>\n<ol>\n<li>Modelling the full process flow</li>\n<li>Drawing boundaries and coordination</li>\n<li>Zooming in and out: how to focus on the process you’re working on without losing sight of the whole</li>\n<li>Consistency and concurrency on the model: how to show them and how to discuss them</li>\n<li>Simulating how the system behaves before implementation: Temporal Modelling and working with examples</li>\n</ol>\n<p><strong>Day 3: Implementation</strong></p>\n<ol>\n<li>Process implementation styles, including Saga and Process Manager</li>\n<li>Delivery guarantees, ordering and idempotency in code</li>\n<li>Outbox and other technical ways to keep the guarantees</li>\n<li>Types of queues (RabbitMQ, Kafka, cloud services and others), the consequences of choosing them, and topology</li>\n</ol>\n<p><strong>Day 4: Reliability and architecture</strong></p>\n<ol>\n<li>Testing event-driven flows</li>\n<li>Contracts and catching incompatible changes</li>\n<li>Fitting the solution into the architecture: CQRS and hexagonal architecture</li>\n</ol>\n<h2 id=\"about-me\" style=\"position:relative;\"><a href=\"#about-me\" aria-label=\"about me permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>About me</h2>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; height: auto\"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/322245296420f3fb824cc334d4e5271f/658fc/oskar.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 100%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAAE3klEQVQ4y1XU2VOTZxTA4fwBnd7Z1oo7RasIhs0IGDYrlBBcEcWtHW1xxWUUpoMOVVsUUCnK4uiNQ1nEqqyyGAFBqyAgiCwS9oghe0JAdOrFr5Mv4nLx3nzvfM+cc95zjqi0tpWHbX0MjOgwmsbQGyzoPj16M5aJt4y/eYfBZEWrN6M3jZGUkoWPlx9rwjfS2TeCyWy/E5XWPrWDL+3gR8wsYAbzOHVV97hz4yYDA8PoTVZ0RgvJKVl4e0qRy9Z/DpbUtHwEjWMCYsdMGCwT9DQ+pjgpgZSYfaSfOYdGb3kfYSY+XivYFLGFrr4RjJ+DvR9A20cbaktdozdTcTGJWydiqLn+N4XXbzGkGsVosQqgVOLH0QOH7OD7coiKq5t50GoDtR9AoU7GMdSjWoqST3Hll0gqr2bQWlmObirlc5lIPLz5MVhOh1L1MeVCxRPut/TQ/wk4lbZaa6AgIZa82GhqC3IYUvahtZVlCnRfTmiwjPae4Y/g7buN1DZ106+ygzZIQI0WrO/gRlYGZ3asRZF9DdVLPQbrBFqDieTkS3iJPQkOCqa1a1CooUZvQnSz8jGKhs4P4KjWKLykSvWKtto6Lh87QlyoH3EhcnJPnEHZ0YNl8i1JZ1PxcHHjB/8gmp/3YTBbGdWZEN2484Cqf9uFlPVGC6N6E1qDhdzj8VxaIyNhpR/bxUs54r2cFPlqruyM5lFhBadPJeG+ZClBK/xpau/FaBm3R1hwp14A+1QatLZWGZ/k0d17JAT5cyFsFbG+Eo54ioUTI/Hi4HIJqRu2kxyXiJurK37ePjS2dgsRqnVGRNdL66h40CaAKrUOy+R/5KalcdDDld8DfNnr5sLJVYEkrAwkaqETES4uJK+OIj0uSQClEglN7UrM1teobRHm28D6Vlq7B+hUDjCst5B+PJ6dzk7sETsT7b6Eot/2U5V0ml1SKV4zpnNYupJLsYmIXZaw3M2NwvJaWjp6aXr2AlFBaQ2V9S20d/ej1uh5OaJhj2wV8jkz+NV1Eft9PMhaH0BZYjyZJ/9g/pdfEDxzBgmboxEvdkbsNJco2SoiZSFEhcsQZefdorSimsYnLTzv7Obpw1quHtzC+Z82cDosiLWOs4lc5EiU5xKObovkQnw8h9eGk/zzbqQengRKxESFrSTM14sQiRhRbnEN5fXNKAdHMI5N0NvVQUniIRSnDvDXplCiln6PbN4swhznEujowNkdayjNPE9DRTnX8gp52NCMsrffHsyzdkT5JTVU1LfQO6TGYNs2ZivP255yblcEZ+W+bHVfjLfD18gXzMPX4Rv2hsvIOLabnLQUyupbhf+s428wjb3GbJ1ElFd8j/K6JpSDr4Q+1FsmGBwcYp/UC//Z05F/N4eNC+Yjd5rHtkXOXIn/U5ii9IupFJTdp0s5KASi0ZnQ2ho7p1BBaU0DyoER4UJrm5JhFTGhASxzmIb7rG+Qzp3JMoevWCMNoPCfMtQaLVmXM8kvrRY6Y2p12cZWlH27ipLqx3bQNssmKyNDwxxYF8AKp29xc3Rg0cxpLHOczv7N61BU3EWt0ZGRkUZukYL2LiUm8/j7hWJBlH2zgiLFQ170qzAYzJjH3/JIUc5WzzlslzixyWM+oc6ziPBayNGIEEry89FoDaSnp5JTeJf27l4BnNpS/wN8gpnJsiREsgAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Oskar Dudycz\"\n        title=\"Oskar Dudycz\"\n        src=\"/static/322245296420f3fb824cc334d4e5271f/a331c/oskar.png\"\n        srcset=\"/static/322245296420f3fb824cc334d4e5271f/36ca5/oskar.png 200w,\n/static/322245296420f3fb824cc334d4e5271f/a3397/oskar.png 400w,\n/static/322245296420f3fb824cc334d4e5271f/a331c/oskar.png 800w,\n/static/322245296420f3fb824cc334d4e5271f/658fc/oskar.png 1024w\"\n        sizes=\"(max-width: 800px) 100vw, 800px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n  </a>\n    </span></p>\n<p><strong>I’m an independent architect and consultant, and I’ve been designing and building business systems for over 18 years.</strong> I help teams design event-driven systems and run training on Event Sourcing, CQRS and Event-Driven Architecture. I’ve applied these approaches in my own projects. I’ve seen how they make systems easier to scale and maintain, and also where they stop paying off.</p>\n<p>Business processes are rarely easy to understand. Knowledge about them is spread across many people, and requirements arrive in fragments. Event-driven architecture helps put them in order and reflect them in code. Even when you manage to model them well, you still have to translate the model into architecture and implementation, and that’s a challenge of its own. This workshop covers both.</p>\n<p>I also know the problems covered in this workshop from the tooling side. I created <a href=\"https://event-driven-io.github.io/emmett/\">Emmett</a>, I was one of the maintainers of <a href=\"https://martendb.io/\">Marten</a> and I contributed to <a href=\"https://developers.eventstore.com/\">EventStoreDB</a>. On <a href=\"https://github.com/oskardudycz/\">GitHub</a>, I share samples and exercises in .NET, Node.js and Java.</p>\n<p>I write regularly about the workshop topics on this blog and in the <a href=\"https://www.architecture-weekly.com/\">Architecture Weekly</a> newsletter, for example:</p>\n<ul>\n<li><a href=\"/en/outbox_inbox_patterns_and_delivery_guarantees_explained/\">Outbox, Inbox patterns and delivery guarantees explained</a></li>\n<li><a href=\"/en/saga_process_manager_distributed_transactions/\">Saga and Process Manager: distributed processes in practice</a></li>\n<li><a href=\"/en/strict_ordering_in_event_handling/\">Handling Events Coming in an Unknown Order</a> and <a href=\"/en/idempotent_command_handling/\">Idempotent Command Handling</a></li>\n<li><a href=\"/en/simple_events_versioning_patterns/\">Simple patterns for events schema versioning</a> and <a href=\"/en/announcing-strictland-contract-testing/\">Announcing Strictland, a contract testing library for message compatibility</a></li>\n<li><a href=\"/en/intro_to_example_mapping/\">The one where Oskar explains Example Mapping</a></li>\n</ul>\n<h2 id=\"-dates-and-price\" style=\"position:relative;\"><a href=\"#-dates-and-price\" aria-label=\" dates and price permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>📆 Dates and price</h2>\n<p><strong>Week 1:</strong> 23 and 24 November 2026</p>\n<p><strong>Week 2:</strong> 30 November and 1 December 2026</p>\n<p>All sessions run from 9:00 to 15:00 CET. The workshop is run in English.</p>\n<p><strong>Price: EUR 699 + VAT.</strong></p>\n<p>Limited to 12 places. The workshop will go ahead once at least 5 people have signed up.</p>\n<p><strong><a href=\"https://forms.gle/uMPEBpKjeP7FtN4k6\"><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 250px; height: auto\"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 22.499999999999996%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAFCAYAAABFA8wzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAsElEQVQY05WQzwqCYBDEV+tgFzMR+nOLKMRbUUnRoc7RKSghIoTyiX0KX8H8fh38oAwPdRh2GHZnd1YQSREBEaXBn1DqPZeKJs9KU38Avg+OA7Zd1mYDTBMsCzwPXLdirLSHKJFcCwrDKDdNZ3BP4BzB6QhxDEEA4QouESQPCJelmWl+JsvrL+z2YL6A9QZuVxgNoePCeAKHPey20La/o5cXIpJpoaj9Yav1yw8LzbMX813RmK6WlCgAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Sign up!\"\n        title=\"Sign up!\"\n        src=\"/static/454c8f0d91dd678f8273255e5ea05020/3e256/sign-up.png\"\n        srcset=\"/static/454c8f0d91dd678f8273255e5ea05020/36ca5/sign-up.png 200w,\n/static/454c8f0d91dd678f8273255e5ea05020/3e256/sign-up.png 250w\"\n        sizes=\"(max-width: 250px) 100vw, 250px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n    </span></a></strong></p>\n<h2 id=\"what-youll-gain\" style=\"position:relative;\"><a href=\"#what-youll-gain\" aria-label=\"what youll gain permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>What you’ll gain</h2>\n<p><strong>Less guesswork during implementation.</strong> You’ll read from the process model whether you need a queue, which one and with what guarantees. Those decisions get made at the design stage, not after the first outage.</p>\n<p><strong>Fewer bugs that only show up in production.</strong> Lost and duplicated messages, the wrong processing order or broken contracts between services rarely show up in unit tests. You’ll learn to predict them on the model and catch them in tests.</p>\n<p><strong>A model you can discuss with both the business and your team.</strong> The outcome of EventStorming becomes a shared source of knowledge about the process. The business sees its process in it, and the team sees a starting point for implementation.</p>\n<p><strong>Arguments instead of opinions.</strong> In architecture reviews, you’ll be able to explain what the team gains and loses by choosing a specific queue, coordination style or level of consistency, instead of saying “that’s how it’s done”.</p>\n<p><strong>You’ll find it easier to assess what AI has generated.</strong> When you know which guarantees the process needs, you also know where to look for problems in generated code.</p>\n<p><strong>You’ll leave with tools, not just notes.</strong> You can use the workshop code and the Miro board in your own project and team straight away.</p>\n<p><strong><a href=\"https://forms.gle/uMPEBpKjeP7FtN4k6\"><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 250px; height: auto\"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 22.499999999999996%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAFCAYAAABFA8wzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAsElEQVQY05WQzwqCYBDEV+tgFzMR+nOLKMRbUUnRoc7RKSghIoTyiX0KX8H8fh38oAwPdRh2GHZnd1YQSREBEaXBn1DqPZeKJs9KU38Avg+OA7Zd1mYDTBMsCzwPXLdirLSHKJFcCwrDKDdNZ3BP4BzB6QhxDEEA4QouESQPCJelmWl+JsvrL+z2YL6A9QZuVxgNoePCeAKHPey20La/o5cXIpJpoaj9Yav1yw8LzbMX813RmK6WlCgAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Sign up!\"\n        title=\"Sign up!\"\n        src=\"/static/454c8f0d91dd678f8273255e5ea05020/3e256/sign-up.png\"\n        srcset=\"/static/454c8f0d91dd678f8273255e5ea05020/36ca5/sign-up.png 200w,\n/static/454c8f0d91dd678f8273255e5ea05020/3e256/sign-up.png 250w\"\n        sizes=\"(max-width: 250px) 100vw, 250px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n    </span></a></strong></p>\n<h2 id=\"testimonials\" style=\"position:relative;\"><a href=\"#testimonials\" aria-label=\"testimonials permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Testimonials</h2>\n<p>See what participants say about <a href=\"https://www.linkedin.com/in/oskardudycz/details/recommendations/?detailScreenTabIndex=0\">my workshops</a>:</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; height: auto\"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/c6f16dd1f677a9f25df55628f649a880/a331c/ro-08.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 21.999999999999996%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAECAYAAACOXx+WAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAmklEQVQY032PSw7DIAxEc/+DddUbdFFVwSQ1oPJJVglMZdNEyqaWhieb0WCGum143G+g1xOGLIgIMUYsy4KUEnLOKKUoD5WD5zypv7WGQY7aoCHMDOechk7TBGMMrLWY5/lCuTsk3nEc9XEpDZSK8QOibnbOa3AIQel970XMneGcebyZddNfIHTVdV2RclbWWk/t+37p/0m+/AXt8jHPs2osTQAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"rekomendacja\"\n        title=\"rekomendacja\"\n        src=\"/static/c6f16dd1f677a9f25df55628f649a880/a331c/ro-08.png\"\n        srcset=\"/static/c6f16dd1f677a9f25df55628f649a880/36ca5/ro-08.png 200w,\n/static/c6f16dd1f677a9f25df55628f649a880/a3397/ro-08.png 400w,\n/static/c6f16dd1f677a9f25df55628f649a880/a331c/ro-08.png 800w\"\n        sizes=\"(max-width: 800px) 100vw, 800px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n  </a>\n    </span></p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 788px; height: auto\"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/2602dc28f80acbdadf1915093934a087/f778e/r02.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 25.5%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAFCAYAAABFA8wzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA3ElEQVQY05WQzQ7BQBSF+wwS8Vc17fRHi1LtqEQxqiJ2YuNhbGw99ZF7VUisLE5ucs7NN/eMcT1f8LjdkS5XKHSFjdZIswy2F6E3kH+pazkwlMpxOp4QThLE8wWm6QLxXGE8SyGDERw/gu2FcIdjmMJF2xTo9O0fEYygRrNrodHqQcgAwh3yHMiAIQRzvBAyiDijKcn7Enk06TG+kKgEKPQem/LAWm1LrHXFXrH9aE07u4pzyniHsxKTRPGlBlGJznXryi/l7MWJqr8ixyzLkWRLvlLULd5tLMfnC5+XeZdUlYvx0AAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"rekomendacja\"\n        title=\"rekomendacja\"\n        src=\"/static/2602dc28f80acbdadf1915093934a087/f778e/r02.png\"\n        srcset=\"/static/2602dc28f80acbdadf1915093934a087/36ca5/r02.png 200w,\n/static/2602dc28f80acbdadf1915093934a087/a3397/r02.png 400w,\n/static/2602dc28f80acbdadf1915093934a087/f778e/r02.png 788w\"\n        sizes=\"(max-width: 788px) 100vw, 788px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n  </a>\n    </span></p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; height: auto\"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/d30cfd022efdaa47375a7741d1e921fd/a331c/ro-06.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 23%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAFCAYAAABFA8wzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAw0lEQVQY06WOywrCMBBF+/9fILhy6calX6IogqBtXk20JGnsg9JemalK9wYOnJlhbiY7HQ+4Xs7w3uPhHEKI+Odlm/UK+90WlffQWsNahxgj6rpmYgwIISzquJhHpJTYm6ZB13XIKLXve5TGcKBS6kee50xRFNDaQAjBTjMpJLuUknlWFYZhmAMp+X6/QQgJpTQv0hItkDvnYIyBtRZlWUJ/Pieopj5527ZzICXT2XR+Sq+fh+DZx3FkpmlilvX46X37b30ffLBPROTFAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"rekomendacja\"\n        title=\"rekomendacja\"\n        src=\"/static/d30cfd022efdaa47375a7741d1e921fd/a331c/ro-06.png\"\n        srcset=\"/static/d30cfd022efdaa47375a7741d1e921fd/36ca5/ro-06.png 200w,\n/static/d30cfd022efdaa47375a7741d1e921fd/a3397/ro-06.png 400w,\n/static/d30cfd022efdaa47375a7741d1e921fd/a331c/ro-06.png 800w\"\n        sizes=\"(max-width: 800px) 100vw, 800px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n  </a>\n    </span></p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 797px; height: auto\"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/e8a0db91bbb0fc32293625d86119e735/a78c3/r20.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 44.99999999999999%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAJCAYAAAAywQxIAAAACXBIWXMAAAsTAAALEwEAmpwYAAABRklEQVQoz31RSVLDQAzML1iTeF9I4mW8jNdUTLjBgQdQxZX/f6CplvGQHODQbpWkabek1fvbK74+P6CHCU1/RLhLYHmRwPFjOEGMjRPgfuPgYev+C/as4iCG2qdICo0kr5CVMx+yErtUwY8PIn77aOFubf8JI3iztkHYXoStG2DrhiIg7IZ4tDzj2PbjX/fB01VumWDFwPJCjNML+uMzxtMZ7XBCN04YTmdh5rrjJGAf6yY3TvKOBsQhP9xRxpFVjaxskKgKaVHjkFfIy0ZqRKpqAfN0OE8TCpuROT8The6QV61wUXcz6w6l7qGqVpBXjamzlz9jzB4/2ssujUNxcuGGLuVA4lrPKLRxTKbQUqPjK8GqHQSF7qVxdtHIQ7W40XNO1a3UyezlepbDiODa9mUvdEXssxK2H5mLm6v/xNYSX+SoQcFvAhEQ0MECUDIAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"rekomendacja\"\n        title=\"rekomendacja\"\n        src=\"/static/e8a0db91bbb0fc32293625d86119e735/a78c3/r20.png\"\n        srcset=\"/static/e8a0db91bbb0fc32293625d86119e735/36ca5/r20.png 200w,\n/static/e8a0db91bbb0fc32293625d86119e735/a3397/r20.png 400w,\n/static/e8a0db91bbb0fc32293625d86119e735/a78c3/r20.png 797w\"\n        sizes=\"(max-width: 797px) 100vw, 797px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n  </a>\n    </span></p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 772px; height: auto\"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/064e4e8b7932763a2e58e9f51deb2c96/af2bd/ro-11.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 44.99999999999999%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAJCAYAAAAywQxIAAAACXBIWXMAAAsTAAALEwEAmpwYAAABEElEQVQoz31S2W6EMAzc///BvlAtBXICAsRVlsPVOBiyldpIjpM4mRk7fihjSRtDWmtSSlFRFFTXNWEcx4GZ/X+27zsbxuPjM6Pk+UVp+qQ0TSlJEsqyjKy1ZJ0j5xwZY6gsS14778l7z3F3xrGf5zkAYlqWbw5UVcVB7x0r1tqQVup6DI8zEDAhzm3IcHm9bsBhGPiSP9mxhgEEymAgiRXjnqgG+TRNN+A4jtdjSUNSk5QCqL+UgUBiIOi67gZE/gLmoxqJytsCcFwCa4Nv2/YGhNwYUGopZ+LxMCgtfxG595T7vqc8z8mcrYOaSB3x49jHnyWliAmbpuEWYsB1XRkUnwMm+Ni2bXvrub96EYA/edCqYNc8kmsAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"rekomendacja\"\n        title=\"rekomendacja\"\n        src=\"/static/064e4e8b7932763a2e58e9f51deb2c96/af2bd/ro-11.png\"\n        srcset=\"/static/064e4e8b7932763a2e58e9f51deb2c96/36ca5/ro-11.png 200w,\n/static/064e4e8b7932763a2e58e9f51deb2c96/a3397/ro-11.png 400w,\n/static/064e4e8b7932763a2e58e9f51deb2c96/af2bd/ro-11.png 772w\"\n        sizes=\"(max-width: 772px) 100vw, 772px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n  </a>\n    </span></p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 788px; height: auto\"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/4482681f1d90c6d68c7a1362e83b54a9/f778e/r10.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 59.00000000000001%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAAAsTAAALEwEAmpwYAAABwUlEQVQoz4VTSW7cMBDUH5xDnHg8o33fd4mSZuxcDQc5G1n+/4gKuhh5YAOBD61uUmSpqqtlPD094/n7D2RVh7qbGGnZ4OT4+HJvMb4ebdydbOaPwnh5+Ynfv/6gm1ao7QHL5Rum5YyyHeGGKUw3xNG+gn8Uxs3nO3y6PRD9ysbBwXQJdLQ91vv7/cz/siEP0w3QTyum5YJuXNDPK9ftqND0M7ppwaA2vh+Xsw515pr764Vqbg8mDHmcnADDvPKQXBYgqSW3g+IHJIdpAT/OECQFwrREUtSso7SE7ccaUKjeWx6SokGUlYizihFlFS/IxTiveMmPBCwnqBsm8KKMtRMkr7JfGYohw7zpUBtZCVtpwbxeyFjeiWHq/MjzIn3eHrj24/zKUJq/920HYf+GmXtF3WuZScEc5zUVhKwrpEXzVvLBdChNDgdxzq95UUqJItXyQqqQEbK86F9+W0vbKJkMLU8bMi5oBs1MYndX2Iqjslc0PaPqJpTtwLpsBgK/M6WmKcJITEnymnKysmWdli1dFqbCaB94GTlde3oOBdV0Aoxq0yMzKDKS3slvaPsRpcmceRKRHpvdXe10DsePCfgXGdVtSZdINasAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"rekomendacja\"\n        title=\"rekomendacja\"\n        src=\"/static/4482681f1d90c6d68c7a1362e83b54a9/f778e/r10.png\"\n        srcset=\"/static/4482681f1d90c6d68c7a1362e83b54a9/36ca5/r10.png 200w,\n/static/4482681f1d90c6d68c7a1362e83b54a9/a3397/r10.png 400w,\n/static/4482681f1d90c6d68c7a1362e83b54a9/f778e/r10.png 788w\"\n        sizes=\"(max-width: 788px) 100vw, 788px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n  </a>\n    </span></p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 776px; height: auto\"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/19de27f150c8eef0ea2fdd6f1e7ecb83/3bb8e/ro-12.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 33%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAHCAYAAAAIy204AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA8UlEQVQoz6VQWW6FMAzkxu0ZerVKlXoMRDYnBAg7lDKVzQPx+tGfRhpNbCfjsbPP9w+EMqKKEWUIaLsO/znZ2+sLtCV4TzDGwHsvot0NKSX0ff+UG4YBKbVo21bq0zRh33dkwDfqurrEyDnkeQ5rDJTWkrfWQGsNa63ESqmLtVIg8ogx4mvbWBAIIaAoCnnA4Dt/ts6JkGEx56485xjuUa/rGuu6HiOzzbIsQUTy4HTqiQ7H5IRZiOvuJhy8Pxoagyalc2RIBxH5BXZ+Zwbvq2kaYd4f35mrqsLGI7Mq253nGeM4CjOWZZFFn/GJvw47/AF9ZBQgyF9FKQAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"rekomendacja\"\n        title=\"rekomendacja\"\n        src=\"/static/19de27f150c8eef0ea2fdd6f1e7ecb83/3bb8e/ro-12.png\"\n        srcset=\"/static/19de27f150c8eef0ea2fdd6f1e7ecb83/36ca5/ro-12.png 200w,\n/static/19de27f150c8eef0ea2fdd6f1e7ecb83/a3397/ro-12.png 400w,\n/static/19de27f150c8eef0ea2fdd6f1e7ecb83/3bb8e/ro-12.png 776w\"\n        sizes=\"(max-width: 776px) 100vw, 776px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n  </a>\n    </span></p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 778px; height: auto\"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/c1060460650e18159dde167741ef2572/56544/r24.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 26%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAFCAYAAABFA8wzAAAACXBIWXMAAC4jAAAuIwF4pT92AAAA5UlEQVQY05WQS26DMBRFWUJnaRtC+ZRgE+yAwdhgyHdQVe2w6hq6/w3cyo9I6bSDK73PvUfPDn6+3vH98QZ7uMIdzphOV1h3xJYLrF+yfyv4vJxwmWYwqSAbDak0RN2hlAppzpHkHM9RiscwvinB0yb509/n3hc8rEJEGUPbD6g7g31r0GiLth/RmhGddUtvHDrjoPqBZl5K3+tSNAtwHaV4ZRX6cSYIGX3IOOhhJugCHKHtRB4PKnZ7ZMWOsjmrqKYne2qcFeCiAa9qMnoxr1u/LSVp2UnacVFTZpPkWIUxfYO/8BchnZbNmVr8XAAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"rekomendacja\"\n        title=\"rekomendacja\"\n        src=\"/static/c1060460650e18159dde167741ef2572/56544/r24.png\"\n        srcset=\"/static/c1060460650e18159dde167741ef2572/36ca5/r24.png 200w,\n/static/c1060460650e18159dde167741ef2572/a3397/r24.png 400w,\n/static/c1060460650e18159dde167741ef2572/56544/r24.png 778w\"\n        sizes=\"(max-width: 778px) 100vw, 778px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n  </a>\n    </span></p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; height: auto\"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/08ea081851df2e5d4447c11dd2e6ff0e/d199d/ro-04.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 27.999999999999996%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAYAAADDl76dAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAz0lEQVQY051RTa+DIBD0//+qXnt9l5f01gSUDyMiitZWt5mx1MO7PZJhFmZ32CyV03dxjZauC+K9l+XxkP+ufd+lul0vcv/9kbYLUte1hBAkxigpJXLf98QwDMQ4jhLjERcdMcywKmzLsogxRpxzBIy11uSmacRaSy5ALu6Q433Lx7dtOw1zzhSRWAq+xR+muTHUDlhRSlHDqNZ1PQ2naaIIU3DpjHfoVqlvMXJKx85axsifcj4NX88n205pJOMBzApczmDMap5nzusvjo95AyXDyeMGFVQHAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"rekomendacja\"\n        title=\"rekomendacja\"\n        src=\"/static/08ea081851df2e5d4447c11dd2e6ff0e/a331c/ro-04.png\"\n        srcset=\"/static/08ea081851df2e5d4447c11dd2e6ff0e/36ca5/ro-04.png 200w,\n/static/08ea081851df2e5d4447c11dd2e6ff0e/a3397/ro-04.png 400w,\n/static/08ea081851df2e5d4447c11dd2e6ff0e/a331c/ro-04.png 800w,\n/static/08ea081851df2e5d4447c11dd2e6ff0e/d199d/ro-04.png 833w\"\n        sizes=\"(max-width: 800px) 100vw, 800px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n  </a>\n    </span></p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 797px; height: auto\"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/9bdfa642bc586f14dd739ff90ec969d5/a78c3/r22.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 30.5%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAYAAADDl76dAAAACXBIWXMAAAsTAAALEwEAmpwYAAABC0lEQVQY042Qy06EQBBF+QZdiCLDq2cAmQcOjAzNo2mGiboyJi5dufAD/P/kmirA3SQuTlequ+p23TI+P97x8/2FXCqUtUKlesSbFLYrcGt7uFsQ/j/xYOi2xdvrCzZZgTQrsJsIkx381QNDxSR+CfN+/NRyAhjXpo0r04a3jOGKCK4I4QQhCwVh8ic6Q3VBOMa5R0RrLPwVixqW48MTEVp9RqsHyEajmSLZb7oBVatRtT3fl3XHtXV34jc9PEM2HZbxhqc16KCJVH9GrU4MNzYdi5AoCcoJyo+1wpNssN0fkBUSYbLFjeWMlumgcef97Q8l0vzI+SPFvMA6zdger2GyPlucd2d7ggV/ASbgtoY8eP1iAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"rekomendacja\"\n        title=\"rekomendacja\"\n        src=\"/static/9bdfa642bc586f14dd739ff90ec969d5/a78c3/r22.png\"\n        srcset=\"/static/9bdfa642bc586f14dd739ff90ec969d5/36ca5/r22.png 200w,\n/static/9bdfa642bc586f14dd739ff90ec969d5/a3397/r22.png 400w,\n/static/9bdfa642bc586f14dd739ff90ec969d5/a78c3/r22.png 797w\"\n        sizes=\"(max-width: 797px) 100vw, 797px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n  </a>\n    </span></p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; height: auto\"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/a3b322183aa709dc7cd69bfb6639b482/d199d/ro-05.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 31%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAYAAADDl76dAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA1UlEQVQY05VRy46EIBD0q2du+3mTvcwvsGoc2icQlTURpTbditnjDEmFaiiqH2S/3uP5/cA4jpjnGd57TNOEZVnw6YoxIquJ8HW/4UcpKKVQFAXyPEdZlrDWwjGcO7hzF4ZhgDFGztd1RYynYXLnSyJC27aCuq5BpGXXWqNpGuEJVVWJXr9eot/3KD4Zu8Z9R9/3IuRLFrIBnY+ZtxxrfSaiKyEn41FdLSfSdZ0IJetZUfOvIuesdGHSGKyVtrl9Yyy2bTsqTIYhBAHPg5HiEI743U/5AwddyoVKCT5sAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"rekomendacja\"\n        title=\"rekomendacja\"\n        src=\"/static/a3b322183aa709dc7cd69bfb6639b482/a331c/ro-05.png\"\n        srcset=\"/static/a3b322183aa709dc7cd69bfb6639b482/36ca5/ro-05.png 200w,\n/static/a3b322183aa709dc7cd69bfb6639b482/a3397/ro-05.png 400w,\n/static/a3b322183aa709dc7cd69bfb6639b482/a331c/ro-05.png 800w,\n/static/a3b322183aa709dc7cd69bfb6639b482/d199d/ro-05.png 833w\"\n        sizes=\"(max-width: 800px) 100vw, 800px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n  </a>\n    </span></p>\n<p><strong>So, have I convinced you?</strong></p>\n<p><strong><a href=\"https://forms.gle/uMPEBpKjeP7FtN4k6\"><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 250px; height: auto\"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 22.499999999999996%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAFCAYAAABFA8wzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAsElEQVQY05WQzwqCYBDEV+tgFzMR+nOLKMRbUUnRoc7RKSghIoTyiX0KX8H8fh38oAwPdRh2GHZnd1YQSREBEaXBn1DqPZeKJs9KU38Avg+OA7Zd1mYDTBMsCzwPXLdirLSHKJFcCwrDKDdNZ3BP4BzB6QhxDEEA4QouESQPCJelmWl+JsvrL+z2YL6A9QZuVxgNoePCeAKHPey20La/o5cXIpJpoaj9Yav1yw8LzbMX813RmK6WlCgAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Sign up!\"\n        title=\"Sign up!\"\n        src=\"/static/454c8f0d91dd678f8273255e5ea05020/3e256/sign-up.png\"\n        srcset=\"/static/454c8f0d91dd678f8273255e5ea05020/36ca5/sign-up.png 200w,\n/static/454c8f0d91dd678f8273255e5ea05020/3e256/sign-up.png 250w\"\n        sizes=\"(max-width: 250px) 100vw, 250px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n    </span></a></strong></p>\n<h2 id=\"frequently-asked-questions\" style=\"position:relative;\"><a href=\"#frequently-asked-questions\" aria-label=\"frequently asked questions permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Frequently asked questions</h2>\n<p><strong>Can I get an invoice?</strong></p>\n<p>Yes. I issue VAT invoices, so you can easily put the workshop through your company.</p>\n<p><strong>What language is the workshop run in?</strong></p>\n<p>English. You don’t need to speak it perfectly. It’s enough that you can comfortably read documentation and hold your own in a discussion.</p>\n<p><strong>What experience do I need?</strong></p>\n<p>I designed the workshop with mid-level and senior developers in mind. If you’ve already built a few systems, you’ll feel at home.</p>\n<p><strong>Which programming language will I use?</strong></p>\n<p>You pick one of three: Java, TypeScript or C#. I’ve prepared the exercises in each of them, so you can work in the one you use every day.</p>\n<p><strong>Why does the workshop run over two weeks rather than four days in a row?</strong></p>\n<p>There’s a lot of material, and participants in previous editions told me they needed time to put it all in order. The break between the weeks gives you that time. You can ask any questions that come up on Discord or at the start of the second week.</p>\n<p><strong>How does the online format work?</strong></p>\n<p>We meet on Zoom and model together on a shared Miro board. You’ll spend most of the time working in groups, and I drop in, help out and answer questions.</p>\n<p><strong>Will the workshop be recorded?</strong></p>\n<p>No, but you’ll have plenty to come back to: the code repository, the Miro board, the ebook and additional materials.</p>\n<p><strong>How many people will take part?</strong></p>\n<p>Between 5 and 12. That’s enough to work in groups, and few enough for me to have time for everyone.</p>\n<p><strong>What happens if fewer than 5 people sign up?</strong></p>\n<p>You’re not taking any risk. I only collect payments once at least 5 people have signed up. If the workshop still doesn’t take place, I’ll refund the full amount.</p>\n<p><strong>When and how do I pay?</strong></p>\n<p>Sign up first. Once I confirm that the group is complete, I’ll send you the payment details. You don’t pay anything until then.</p>\n<p><strong>Are there any discounts, for example for several people from the same company?</strong></p>\n<p>No. The price is the same for everyone, whether you’re signing up just yourself or your whole team.</p>\n<p><strong>Can I cancel?</strong></p>\n<p>Yes, if something beyond your control, such as illness, stops you from attending. Let me know, and if the reason is valid, I’ll refund your payment.</p>\n<p><strong>Will I get a certificate of completion?</strong></p>\n<p>Yes, you’ll receive it after the workshop.</p>","excerpt":"Event-driven architecture helps you reflect the business process in code and makes it easier to work with the business. It can also reduce dependencies between parts of…","fields":{"slug":"/light-and-dark-side-of-eda-workshop/","langKey":"en","source":"pages"},"frontmatter":{"title":"Event-Driven Architecture: The Light and the Dark Side","description":"A four-day online cohort workshop on getting from business requirements, through a process model, to a working event-driven system with the right delivery, ordering and consistency guarantees.","useDefaultLangCanonical":null,"cover":{"childImageSharp":{"resize":{"src":"/static/26353fde6a003a86ab559fb7323948c8/47498/workshop.jpg"}}}}},"site":{"siteMetadata":{"facebook":{"appId":""}}}},"pageContext":{"slug":"/light-and-dark-side-of-eda-workshop/","source":"pages","lang":"en","langKey":"en","originalPath":"/light-and-dark-side-of-eda-workshop/","availableLanguages":["pl","en"],"excludeFromSitemap":false}},
    "staticQueryHashes": ["2742854296"]}