ich einige kleine Forschung über Domain Veranstaltungen gemacht haben, und einige verschiedene LösungenDDD: Domain Events Implementierung in monolithische Anwendung
- Udi Dahan Lösung, die Ereignisse gefunden haben sofort
- Deferred Domain Ereignisse behandeln, die Feuer off hauptsächlich in Infrastruktur
- Domain Events das Ergebnis zurück
Fragen:
- Welcher ist eine reine Domain Events?
- Ist es möglich, alle im selben Projekt zu haben?
- In diesem Fall, wie soll ich sie benennen und unterscheiden?
- Wo EventHandler registrieren? Jemand erwähnt, dass Application Service ist Ort, aber here Ich habe gesehen, dass es direkt in das Domain-Modell registriert wurde und dort auch behandelt, und nicht in separaten Event-Handler-Klasse.
Eine zusätzliche Frage.
Zum Beispiel: Wenn die Bestellung erstellt und bezahlt wird, muss sie den Status "OrderPaid" erhalten.
Da Einkauf und Bestellung zwei verschiedene Kontexte sind, müssen wir direkt nach der Bestellung ein Domain-Event erstellen, das von Event Handler im beschränkten Context des Einkaufs behandelt werden sollte, aber als Ergebnis der Event-Behandlung sollte es erhöht werden mehr Domain Event - OrderPaid, das möglicherweise erneut vom Order-Kontext behandelt wird. Bei einer Monolith-Anwendung scheint es, als könnte eine Lösung lauten: Übergeben Sie das Order-Objekt an Event-Handler, um das erwartete Verhalten zu erreichen. Gibt es andere Wege, wie man es in einem solchen Architekturstil lösen kann?
Für mich, und das ist ziemlich subjektiv, ziehe ich Udi's Domain-Events vor. Es scheint mir am reinsten zu sein. –
@AdrianThompsonPhillips dann, wie Sie den Fall von Beispiel oben lösen würden? – user1016265