Ich möchte Elemente des CQRS-Musters in meinem Projekt verwenden. Ich frage mich, ob ich es richtig mit Command and Events mache. Die Sache, die ich nicht sicher bin, ist, ob Ereignis Befehl aufrufen kann. Um besser zu zeigen, was ich tun möchte, werde ich Diagramm und Beispiel verwenden.CQRS - kann EventListener Befehl aufrufen?
Dies ist ein Beispiel:
Benutzer TripCreateCommand aufzurufen. TripCreateCommandHandler erledigt seine Arbeit und veröffentlicht nach dem Erfolg TripCreatedEvent.
Jetzt haben wir zwei Zuhörer TripCreatedEvent (die Reihenfolge der Zuhörer Ausführung spielt keine Rolle)
Erste Hörer (kann nach dem zweiten Hörer auszuführen sein):
für jeden Benutzer in trip.author.friends aufrufen zwei Befehl (die Reihenfolge der Befehle ist wichtig)
- PublishTripOnUserWallCommand
- SendNewTripEmailNotificationCommand
- SendNewTripPlatformNotification
Zweiter Hörer (kann vor dem ersten Zuhörer auszuführen sein):
- PublishTripOnUserSocials
Und das ist ein Beispieldiagramm:
Ist das ist ein guter Weg ? Kann EventListener Befehl aufrufen, oder sollte ich es auf andere Weise tun?
Vielen Dank für die Wiederholung! Skalierbarkeit ist eines der wichtigsten Dinge in meinem Projekt (ich möchte die Möglichkeit haben, meine Anwendung horizontal zu skalieren), also muss ich den Befehl definitiv asynchron verarbeiten. Ich möchte Async verwenden und erwarte von C#, dies zu tun. – mrrobot