Blog

EventStorming und wie Sie Domain Events für das Produktmanagement überwachen können

Kenny Baas-Schwegler

Aktualisiert Oktober 21, 2025
4 Minuten

Wir entwerfen, modellieren und erstellen Software, um ein Problem für unseren Kunden zu lösen (dies kann auch ein Kunde aus demselben Unternehmen sein). Nur wenn wir das tun, konzentrieren wir uns natürlich auf die Lösung des glücklichen Weges und wollen diesen Wert so schnell wie möglich liefern. Das einzige Problem dabei ist, dass wir immer an einen Punkt kommen, an dem wir Eckfälle oder geschäftliche Ausnahmen bekommen und sich die Frage stellt, was wir tun sollen. Lohnt es sich, in den Aufbau einer Lösung für diesen Fall zu investieren, oder können wir diese Funktion aus dem System herauslassen, weil sie es nicht wert ist? Um diese Frage zu beantworten, brauchen wir, wenn möglich, ein Feedback vom System, um dies zu wissen. Wir können dieses Feedback schnell erhalten, indem wir es in Form eines Domänenereignisses während unseres EventStorming explizit machen und mit der Überwachung beginnen. Auf diese Weise können wir uns die Optionen offen lassen, bis wir wissen, was zu tun ist.

Domänengesteuertes Design, Domänenereignisse und EventStorming

Domain Events ist ein taktisches Muster aus Domain Driven Design. Es ist nicht im Originalbuch enthalten, sondern wurde später erstellt und ist im Referenzbuch als 'etwas passiert, was Domänenexperten interessiert' dokumentiert. Es ist das zentrale Konzept, das in EventStorming verwendet wird. EventStorming ist ein flexibles Workshop-Format für die gemeinschaftliche Erforschung komplexer Geschäftsbereiche. Für unser heutiges Beispiel werden wir EventStorming verwenden, um Ihnen zu zeigen, wie wir es nutzen können, um diese Domänenereignisse zu finden und zu überwachen. Die Domäne, die wir verwenden, ist das Kino, und das Problem besteht darin, Kunden Tickets kaufen und Plätze für eine bestimmte Filmvorführung reservieren zu lassen. Wir beginnen mit einem Domain Event, das uns mitteilt, dass ein Kunde Eintrittskarten kaufen möchte. Das Domain Event wird in das Ereignis Tickets angefordert aufgelöst und startet unseren Reservierungsprozess.

Wenn wir den Reservierungsprozess starten, tun wir dies, indem wir die vom Kunden gewünschte Anzahl von Plätzen reservieren. Jetzt haben wir mehrere konsistente Geschäftsregeln, wenn wir die Aktion durchführen. Das bedeutet, dass es keine Widersprüche gibt. In diesem Fall wollen wir nur eine Person pro Sitzplatz, nur nebeneinander liegende Sitzplätze und maximal acht Tickets pro Kunde haben. Der eine Sitzplatz pro Person scheint logisch zu sein, aber wenn Sie ein Flugticket buchen, wird die Ebene normalerweise überbucht, und das bedeutet, dass diese Regel nicht gilt. Wir wollen jede Regel, die sich auf unsere Modellierung auswirkt, explizit aufführen. Wenn wir nun die zweite Regel nehmen, nur nebeneinanderliegende Sitzplätze, können wir einen Eckfall oder eine geschäftliche Ausnahme erhalten. Es stellt sich die Frage, was wir tun, wenn genügend Sitzplätze vorhanden sind, diese aber nicht nebeneinander liegen.

Wir möchten diese Frage in unserem EventStorm explizit machen, damit wir über visuelle Dinge sprechen können. Wir möchten also ein Domänenereignis erstellen und ihm eine Frage hinzufügen. Bei der Diskussion über diese Frage werden die Entwickler wahrscheinlich sagen, dass die Implementierung dieses Ablaufs einige Zeit und Mühe kosten wird. Zu diesem Zeitpunkt haben wir keine Rückmeldung darüber, wie oft dies geschehen wird, geschweige denn, wie viele unserer Benutzer damit einverstanden sind, dass es keine benachbarten Sitzplätze gibt. Bevor wir uns also an die Lösung dieses Problems machen, wollen wir erst einmal Feedback einholen. Wir möchten einen Weg finden, wie wir trotzdem kundenfreundlich sein können und gleichzeitig Feedback erhalten, wenn wir dies umsetzen müssen. Eine mögliche Lösung wäre also, das Domain-Ereignis zu überwachen und darauf zu reagieren, indem wir dem Benutzer mitteilen, dass diese Option im Moment nicht verfügbar ist, ihn aber fragen, ob er sie haben möchte. Die Umsetzung einer solchen Geschichte kostet nicht viel und wir können sie schnell in die Produktion bringen. Jetzt können wir schnelles, zeitnahes und zuverlässiges Feedback erhalten und unseren Auftragsbestand entsprechend anpassen. Jetzt können wir wissen, ob sich die Investition in die Lösung dieser Ausnahme lohnt oder nicht.UPDATE:Nach einer großartigen Diskussion auf Twitterüber das Wort Ausnahmen, das ich in der Einleitung verwendet habe, aktualisiere ich es auf Eckfälle oder Geschäftsausnahmen. Außerdem hat Jeremie Chassaing über das Thema gebloggt. Außerdem ist dieser Beitrag auf meiner persönlichen Blog-Seite veröffentlicht.

Verfasst von

Kenny Baas-Schwegler

A lot of knowledge is lost when designing and building software — lost because of hand-overs in a telephone game, confusing communication by not having a shared language, discussing complexity without visualisation and by not leveraging the full potential and wisdom of the diversity of the people. That lost knowledge while creating software impacts the sustainability, quality and value of the software product. Kenny Baas-Schwegler is a strategic software delivery consultant and software architect with a focus on socio-technical systems. He blends IT approaches like Domain-Driven Design and Continuous Delivery and facilitates change with Deep Democracy by using visual and collaborative modelling practices like Eventstorming, Wardley mapping, context mapping and many more. Kenny empowers and collaboratively enables organisations, teams and groups of people in designing, architecting and building sustainable quality software products. One of Kenny's core principles is sharing knowledge. He does that by writing a blog on his website baasie.com and helping curate the Leanpub book visual collaboration tool. Besides writing, he also shares experience in the Domain-Driven Design community as an organiser of Virtual Domain-Driven Design (virtualddd.com) and Domain Driven Design Nederland. He enjoys being a public speaker by giving talks and hands-on workshops at conferences and meetups.

Contact

Let’s discuss how we can support your journey.