Schau doch mal hier rein:
Da bringe ich Flow Design und Event Sourcing zusammen. Das ist kein riesiges Beispiel... aber es wächst.
Und ansonsten: Mir scheint, dass du ein wenig zu ehrfürchtig vor den Akronymen stehst. Oh, DDD! Oh, CQRS! ;-)
Überall gibt es ein paar gute Ideen. Aber am Ende kommt es darauf an, nicht ein Akronym nach dem Buch zu leben, sondern laufende und wandelbare Software auf die Straße zu kriegen.
Steig doch nicht oben ein mit einem Ideal, sondern fang von unten an.
"Dass dem FD kein DDD vorausgeht": Warum sollte das auch? Wenn du dich hinsetzt und großartig überlegst, was es für Aggregate und Entitäten geben sollte, betreibst du vorzeitige Optimierung.
Stattdessen lass dich überraschen von dem, was entsteht, während du mit FD entwirfst und dann implementierst. Da entstehen Muster. Die kannst du vielleicht mal in Entitäten und Aggregate übersetzen. Schön, dass DDD Begriffe dafür zur Verfügung stellt. Aber mit denen anfangen...
Von DDD à la Jimmy Nilsson kann ich nur abraten. Eric Evans hat gute Ideen geliefert - aber in einem Buch, das dem SRP widerspricht. Und Vaughn Vernon hat versucht, es in einem Rundumschlag zu richten. Leider verliert der sich aber aus meiner Sicht im Wald der vielen DDD Bäume, so dass es wieder nicht praktisch anwendbar wird.
DDD und CQRS haben viele Gesichter. Was ist aber der Kern?
Bei DDD gibt es zwei Teile: micro und makro.
Makro ist z.B. Ubiquitous Language und Bounded Contexts. Micro ist Entities usw., also der OO-Teil.
Was ist deren Kern?
Makro: Sei präzise! Klare Sprache, klare Grenzen, klare Domäne.
Micro: Kapselung, SRP - App/Services vs Aggregate/Entity/VO.
Und was ist der Kern von CQRS (und Event Sourcing)?
Klare Grenzen, SRP.
Schreiben ist etwas anderes als Lesen. Trenne Datenstrukturen für unterschiedliche Aspekte/Zwecke.
Und was ist nun der Kern von FD?
Konzentriere dich mit SRP auf Verhalten! Aus Verhalten ergibt sich der Rest.
FD ist im Grunde Taoismus für die Codierung :-) Codiere im Hier und Jetzt. Plane nicht, sondern lass dich von Moment zu Moment vom Leben, äh, den Anforderungen tragen. Tue in jederzeit nur das unmittelbar Nötige.
Und da der Kunde Software will, die funktioniert, d.h. Verhalten zeigt, ist der Fokus des Nötigen genau darauf. Alles andere muss dem dienen, ergibt sich also. In kleinen "unmerklichen" Veränderungen.