In unserem Workshop werden wir:
* Die notwendigen Grundlagen erklären
* Ein kleines Aggregate mittels Event-Sourcing von Grund auf implementieren
* Es wird dabei vorwiegend "test-driven" (TDD) gearbeitet
Voraussetzungen:
* Grundverständnis taktischer DDD Patterns: Value Object, Event, Command, Entity/Aggregate
* Laptop mit IDE und Unit-Test-Framework
* Pair-Programming ist erwünscht
* Der Workshop ist unabhängig von Programmiersprachen
Maximale Teilnehmerzahl: 16
Zielpublikum: Architekt:innen, Entwickler:innen
Voraussetzungen: Grundverständnis taktischer Patterns aus DDD: Value Object, Event, Command, Entity und Aggregate
Schwierigkeitsgrad: Fortgeschritten
Extended Abstract:
Event-Sourcing erhält in letzter Zeit viel Aufmerksamkeit, obwohl es beileibe kein neues Architekturpattern ist. Der grundlegende Ansatz, die Änderungen anstatt des aktuellen Zustandes zu speichern, wird seit geraumer Zeit z.B. in der Buchhaltung verwendet. Im Computerzeitalter kommt es unter anderem in den "binlogs" von Datenbanken oder bei GIT zum Einsatz.
Zu den Vorteilen dieses Patterns im Vergleich zu klassischen "Stateful Models" zählen unter anderem:
* leichtere Änderbarkeit des "Code-Models" ohne Datenbankmigration
* Experimente mit alternativen Models
* ein simples Datenbankmodell, das ohne ORM auskommt
* neue Möglichkeiten des Debuggings
* Models mit zeitbasiertem Verhalten
* Auditing
In unserem Workshop werden wir:
* Die Grundlagen von CQRS erklären, da Event-Sourcing ohne CQRS kaum möglich ist
* Erklären, was ein "Aggregate" eigentlich ist
* Ein kleines Aggregate mittels Event-Sourcing von Grund auf implementieren, inklusive einiger "Events", "Commands" und "Value Objects"
* Unsere Grundlage dafür wird das Ergebnis einer (fiktiven) "Event Storming" Session sein
* Wir werden dabei "test-driven" (TDD) arbeiten, um nur zu implementieren, was auch wirklich benötigt wird
Voraussetzungen:
* Die Teilnehmenden des Workshops sollten ein Grundverständnis taktischer Patterns aus Domain-driven Design mitbringen: Value Object, Event, Command, Entitiy und Aggregate
* Der Workshop ist grundsätzlich unabhängig von Programmiersprachen
* Die Coaches können: Golang, Java, C# und PHP und haben ein Grundverständnis funktionaler Programmierung
* Die Teilnehmenden sollten einen Laptop mit ihrer liebsten IDE und einem installierten Unit-Test-Framework mitbringen
* Pair-Programming mit anderen Teilnehmenden ist selbstverständlich auch möglich
Vortrag Teilen