Müssen Command und Event immer identische Daten definieren?
Eine der Fragen, die immer wieder auftauchen ist, wie die definierten Felder im Command jetzt mit den definierten Feldern im Event zusammenhängen.
Müssen die Felddefinitionen zwangsläufig übereinstimmen? Wir haben hier bereits gelernt, dass ein Command durchaus mehrere Events erzeugen darf.
Damit ist eigentlich schon klar, dass die definierten Felder im Command nicht unbedingt mit den definierten Feldern im erzeugten Event übereinstimmen müssen.
Eine Regel ist aber wichtig. Das Command liefert immer alle Informationen, die für die Erstellung der Events notwendig sind. Hier hilft sicher auch der Information Completeness Check.
Es ist auch völlig problemlos möglich, dass ein Feld im Event komplett anders benannt ist, als das Feld im Command, solange klar ist, wie die Daten schlußendlich hergeleitet werden können.
Im Eventmodeling-Tooling für Miro nutzen wir hierfür Mappings.
Das Feld im Command heißt "todo", das Feld im Event aber "todoItem". Der Information Completeness Check würde die Verbindung rot markieren. Damit das trotzdem funktioniert, definieren wir ein Mapping von "todoItem" auf "todo"