methodatlas
Run SheetKnowledge ModelingSystem Blueprinting

Event Modeling

KomplexitätMedium
Zeit2-6 h
Teilnehmende2-8
FormatBoth
MaturityEstablished
01

Vorbedingung

Was vorher fertig sein muss

Vorher abschließenEventStorming Big Picture

Eine Übersicht der Domain Events und Pivotal Events liegt vor, sodass das Event Modeling sich auf ein konkretes Szenario fokussieren kann.

Ohne: Ohne diese Grundlage produziert Event Modeling im luftleeren Raum und verfehlt die fachlich relevanten Übergänge.
Vorher abschließenDomain Storytelling

Mindestens eine erzählte Story für das gewählte Szenario existiert, die User Intent und Übergaben sichtbar gemacht hat.

Ohne: Ohne narrative Vorklärung werden Commands und User Actions vermischt oder erfunden.
02

Vorbereitung

Was vor Start vorliegen muss

Materialien

Langes Board (mindestens 4 m oder digital mit Zoom), horizontale Swimlanes (UI/Wireframes oben, Commands und Events Mitte, Read Models und State unten); orange Stickies für Events, blau für Commands, hellblau für Read Models, gelb für User Intent oder Trigger; Marker.

Personen / Rollen

Ein Facilitator mit Event-Modeling-Erfahrung; ein bis zwei Domain-Experten; zwei bis vier Engineers; optional ein UX-Vertreter für Wireframes.

Vorabinfos

Konkretes Szenario („Vom Warenkorb zur bezahlten Bestellung“); Pivotal Events aus EventStorming; bestehende UI-Skizzen oder Screens; bekannte Read Models oder Reports.

Zeitbedarf

2-6 h

Setup

Board mit Zeitachse links nach rechts. Drei Swimlanes markieren (UI/Wireframes, Behavior/Commands+Events, Data/Read Models). Pivotal Events vorab in die mittlere Spur kleben als Ankerpunkte.

03

Kernfrage

Die eine Frage, die diese Methode beantwortet

Welche Events, Commands und Read Models bilden den gewählten User-Flow End-to-End ab und welche Slices lassen sich daraus zur Implementierung schneiden?

04

Ablauf

Marker: Phase

SchrittDauerAktionHinweis
1Phase 1: Wireframes oder UI-Skizzen
20-40 minIn der oberen Swimlane Wireframes oder Skizzen der UI-Schritte des Szenarios kleben. Pro Schritt ein Bild, links nach rechts chronologisch.Wireframes können Bleistift-Skizzen sein, Details egal. Was zählt: welche Information sieht der Nutzer wann, welche Aktion löst er aus.
2Phase 2: Commands aus User Intent
30-45 minPro UI-Aktion einen Command (blau) in die mittlere Spur kleben, direkt unter den Wireframe. Command-Name als Imperativ („PlaceOrder“, „CancelReservation“).Wenn ein UI-Element keinen Command auslöst, ist es Read-only (Anzeige). Wenn ein Command keinen UI-Trigger hat, ist er System-getriggert (Scheduler, externes Event).
3Phase 3: Events als Folge der Commands
30-45 minPro Command einen oder mehrere Events (orange) rechts daneben. Event-Name als Vergangenheit („OrderPlaced“, „ReservationCancelled“). Beziehung Command → Event explizit zeichnen.Ein Command kann mehrere Events erzeugen oder fehlschlagen (Failure Events). Failure Events explizit modellieren, nicht implizit weglassen.
4Phase 4: Read Models und State
30-45 minUntere Spur: pro UI-Bildschirm welche Daten gezeigt werden. Daraus Read Models (hellblau) ableiten und mit den Events verbinden, die sie aktualisieren.Read Model entsteht aus Events, nicht aus Tabellen. Wenn ein Read Model nicht aus den Events ableitbar ist, fehlt entweder ein Event oder das Read Model ist falsch geschnitten.
5Phase 5: Slices und Implementierungsplan
30-45 minVertikale Slices durchs Board: ein Slice = ein User-Schritt mit Command, Events, Read-Model-Update, UI-Anzeige. Pro Slice Aufwand schätzen und priorisieren.Vertikale Slices ermöglichen schrittweise Auslieferung. Wer horizontal schneidet (erst alle Commands, dann alle Events), liefert keinen User Value bis ganz am Ende.
05

Artefakt

Was am Ende rauskommt

Form

Event-Modeling-Board (Foto oder digitaler Export) plus strukturiertes Markdown mit Liste der Slices, pro Slice Commands, Events, Read Models und UI-Bezug. Verlinkt zu Bounded Context Canvases und ADRs.

Tool-Alternativen
  • Miro oder FigJam mit Event-Modeling-Template
  • Physisches Board mit Snapshots
  • EventModeler.org Web-Tool
  • JSON-Spec mit eigenem Schema im Repo
Versionierung / Ownership

Pro Szenario eigener Board-Eintrag mit Datum. Bei Änderungen am Modell (neue Slices, geänderte Events) neue Version. Alte Versionen behalten zur Historie der Modell-Evolution.

markdown

Event Modeling Arbeitsvorlage

Kompakte Arbeitsvorlage für Event Modeling mit Kontext, Input, Ergebnisartefakten und nächstem Schritt.

# Event Modeling Arbeitsvorlage

## Ziel

Modelliert Systemverhalten über Events, Commands, Views und Policies entlang eines Szenarios.

## Kontext

Wann und wofür nutzen wir diese Methode?

## Input

Welche Daten, Beobachtungen, Entscheidungen oder Materialien liegen vor?

## Durchführung

Kurze Notizen entlang des Run Sheets.

## Ergebnisartefakte
- Event Model:
- UI Flow:
- Commands:
- Read Models:

## Annahmen und offene Fragen

- ...

## Entscheidung / Nächster Schritt

Owner, Datum und Erfolgssignal.
06

Beispielausgabe

Konkret gefülltes Szenario

event-modeling-beispiel.md
markdown
## Event Model — Checkout Flow (v1, 2026-05-18)

**Szenario**: Vom Warenkorb zur Versandbestätigung

**Slice 1: Warenkorb anzeigen**
- UI: CartView (zeigt Items, Summe, Versandkostenschätzung)
- Read Model: CartReadModel (aus ItemAddedToCart, ItemRemovedFromCart, CartCleared)
- Commands: keine (Read-only)

**Slice 2: Checkout starten**
- UI: CheckoutAddressForm
- Command: StartCheckout
- Events: CheckoutStarted, AddressRequested
- Read Model: CheckoutSessionReadModel

**Slice 3: Zahlung autorisieren**
- UI: PaymentMethodPicker → PaymentConfirmation
- Command: AuthorizePayment
- Events: PaymentAuthorized | PaymentDeclined
- External: PSP-Webhook → PaymentCaptured
- Read Model: PaymentStatusReadModel

**Slice 4: Bestellung absenden**
- UI: OrderConfirmation
- Command: PlaceOrder
- Events: OrderPlaced, ReservationConfirmed, EmailQueued
- Read Model: OrderSummaryReadModel

**Slice 5: Versandbestätigung empfangen (asynchron)**
- Trigger: CarrierShippedWebhook (extern)
- Command: RecordShipment
- Events: OrderShipped
- Read Model: OrderStatusReadModel

**Implementierungsreihenfolge**: Slice 4 zuerst (Kern-Wert), dann 2+3, dann 1+5.
07

Stolperfallen

Symptome erkennen, gegensteuern

Falle

Commands und Events vermischt

Symptom

Auf Stickies stehen mal Imperative, mal Vergangenheitsform, Farben werden falsch benutzt.

Was tun

Farb- und Namens-Disziplin von Anfang an. Facilitator korrigiert sofort. Command = Absicht (CamelCase Imperativ), Event = Folge (CamelCase Vergangenheit).

Falle

Fehlende Failure Events

Symptom

Jeder Command erzeugt nur Happy-Path-Events, Fehlerfälle sind nicht modelliert.

Was tun

Pro Command explizit fragen: was kann schief gehen? Failure-Event modellieren (PaymentDeclined, ReservationFailed). Sonst fehlt das Handling im Code.

Falle

Read Models aus Tabellen

Symptom

Read Models entstehen, indem aktuelle DB-Tabellen abgemalt werden, nicht aus Events abgeleitet.

Was tun

Strikt prüfen: kann das Read Model aus den Events der Spur reproduziert werden? Wenn nein, fehlen Events oder Read Model ist falsch geschnitten.

Falle

Horizontale Slices

Symptom

Implementierung wird in Phasen geplant: zuerst alle Commands, dann alle Events, dann alle Read Models.

Was tun

Vertikal schneiden. Pro Slice Command + Events + Read Model + UI. So entsteht funktionierender End-to-End-Wert nach jedem Slice.

Falle

Externes als implizit

Symptom

Webhook von PSP oder Carrier wird nicht modelliert, taucht plötzlich im Code auf.

Was tun

Externe Trigger explizit auf das Board als gelbe Stickies (User Intent oder System Trigger). Sonst geht die Integration unter und überrascht das Team später.

08

Abbruchkriterien

Done-Signale, in unter einer Minute prüfbar

Szenario nicht abgegrenzt, Modell driftet in mehrere Use Cases ohne Fokus.
Keine UI-Vorstellung verfügbar, Modell wird abstrakt und ohne Nutzerbezug.
Domain-Experten fehlen, Commands und Events werden technisch geraten.
Board zu klein oder Werkzeug ohne saubere Swimlanes, Übersicht geht verloren.
Workshop kürzer als 2 h geplant, End-to-End-Slice in der Zeit nicht erreichbar.
Keine Bereitschaft zu vertikalem Slicing, Stakeholder will horizontale Phasen erzwingen.

Run Sheet durchgearbeitet?

Zum Steckbrief für Zweck, ähnliche Methoden und Quellen — oder direkt zur nächsten Methode im Katalog.