Ich habe einen Teil des CQRS-Musters mit der folgenden S # arp-Architektur implementiert : public class MyCommand { public CustomerId { get; set; } // some other fields } public class MyCommandHandler<MyCommand> : ICommandHandler<MyCommand, CommandResult> { Handle(MyCommand command) { // some code for saving Customer entity return CommandResult.Success; } } …
Ich lese seit fast zwei Jahren über domänengetriebenes Design und führe einige Konzepte vorsichtig in meine tägliche Arbeit ein oder erstelle zumindest Pläne dafür, wie Dinge, die ich regelmäßig in einem domänengetriebenen Design mache, getan werden können. Eine Schlussfolgerung, zu der ich zu kommen beginne, insbesondere nachdem ich mehr über …
Soweit ich weiß, besteht die große Idee hinter CQRS darin, zwei verschiedene Datenmodelle für die Verarbeitung von Befehlen und Abfragen zu haben. Diese werden als "Schreibmodell" und "Lesemodell" bezeichnet. Betrachten wir ein Beispiel für den Klon einer Twitter-Anwendung. Hier sind die Befehle: Benutzer können sich registrieren. CreateUserCommand(string username)emittiertUserCreatedEvent Benutzer können …
Ich möchte meine erste Anwendung mithilfe des CQRS-Musters zusammen mit Event Sourcing implementieren. Ich frage mich, wie die Erstellung aggregierter Wurzeln richtig gehandhabt werden sollte. Angenommen, jemand sendet den Befehl CreateItem. Wie soll damit umgegangen werden? Wo soll das Ereignis ItemCreated gespeichert werden? Als erstes Ereignis eines neuen Artikels? Oder …
Ich versuche im Grunde, mich mit dem Konzept von CQRS und verwandten Konzepten zu beschäftigen. Obwohl CQRS Messaging und Event Sourcing nicht unbedingt beinhaltet, scheint es eine gute Kombination zu sein (wie aus vielen Beispielen / Blogposts hervorgeht, die diese Konzepte kombinieren). Würden Sie angesichts eines Anwendungsfalls für eine Statusänderung …
Es wird gesagt, dass es in CQRS einfach ist, einen Fehler zu beheben. Sie müssen die Ereignisse nur erneut bereitstellen und dann wiedergeben. Was ist jedoch, wenn eines der Ereignisse dazu führen sollte, dass ein externes System, das nicht unter Ihrer Kontrolle steht, einen Artikel an den Kunden versendet, wenn …
Wie sollen wir neue aggregierte Wurzeln in der cqrs-Architektur erstellen? In diesem Beispiel möchte ich ein neues aggregiertes Stamm-AR2 erstellen, das auf das erste AR1 verweist. Ich erstelle AR2 mit der AR1-Methode als Ausgangspunkt. Bisher sehe ich nur wenige Möglichkeiten: Innerhalb der Methode in AR1 createAr2RootOpt1konnte ich new AR2()dieses Objekt …
Ich habe kürzlich eine Methode überarbeitet, die sowohl ein Befehl als auch eine Abfragemethode war. Nachdem ich es in eine Ein-Befehl-Methode und eine Abfragemethode unterteilt hatte, stellte ich fest, dass es jetzt mehrere Stellen im Code gibt, an denen ich den Befehl aufrufe und dann den Wert aus der Abfrage …
Ich habe eine ASP.NET MVC-Anwendung, die einen Abfragedienst zum Abrufen von Daten und einen Befehlsdienst zum Senden von Befehlen verwendet. Meine Frage betrifft den Befehlsteil. Wenn eine Anforderung eingeht, verwendet der Befehlsdienst einen Befehls-Dispatcher, der den Befehl an den angegebenen Befehlshandler weiterleitet. Dieser Befehlshandler überprüft zuerst den Befehl und führt …
In CQRS / ES wird ein Befehl vom Client an den Server gesendet und an den entsprechenden Befehlshandler weitergeleitet. Dieser Befehlshandler lädt ein Aggregat aus seinem Repository, ruft eine Methode dafür auf und speichert es zurück im Repository. Ereignisse werden generiert. Ein Ereignishandler / Saga / Prozessmanager kann diese Ereignisse …
In der OOP-Community scheint es weit verbreitete Übereinstimmung zu geben, dass der Klassenkonstruktor ein Objekt nicht teilweise oder sogar vollständig nicht initialisiert lassen sollte. Was meine ich mit "Initialisierung"? Grob gesagt der atomare Prozess, der ein neu erstelltes Objekt in einen Zustand bringt, in dem alle seine Klasseninvarianten gelten. Es …
Ich habe in letzter Zeit viel über immer gültige Domänenentitäten gelesen. Ich bin zu der Überzeugung gelangt, dass ich Folgendes tun muss, um sicherzustellen, dass die Entitäten immer gültig sind: 1) Entfernen Sie die primitive Besessenheit und fügen Sie Validierungs- / Domänenregeln in die Wertobjektkonstruktoren ein, wie hier erläutert: https://enterprisecraftsmanship.com/2016/09/13/validation-and-ddd/ …
Szenario: Ein Kunde gibt eine Bestellung auf und gibt nach Erhalt des Produkts eine Rückmeldung zum Bestellvorgang. Nehmen Sie die folgenden aggregierten Wurzeln an: Kunde Auftrag Feedback Hier sind die Geschäftsregeln: Ein Kunde kann nur Feedback zu seiner eigenen Bestellung geben, nicht zu der eines anderen. Ein Kunde kann nur …
Ich entwerfe ein System, das Event Sourcing, CQRS und Microservices verwendet. Ich muss verstehen, dass dies kein ungewöhnliches Muster ist. Ein Schlüsselmerkmal des Dienstes muss die Fähigkeit sein, aus einem Aufzeichnungssystem zu rehydrieren / wiederherzustellen. Microservices erzeugen Befehle und Abfragen auf einem MQ (Kafka). Andere Microservices reagieren (Ereignisse). Befehle und …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.