Frage

Ich integriere verschiedene begrenzte Kontexte mit Windows Service Bus und habe einige Fragen:

1) Wie man Duplikate in anderen begrenzten Kontexten erkannt? Speichern Sie die zuletzt verarbeitete Nachrichtensequenz? Ich möchte die Fähigkeit, Ereignisse erneut zu feuern, um ein neues Synchronisieren von neuen begrenzten KontextenHandleEvent(OrderPlaced orderPlaced, bool isReplay) zu ermöglichen, die in der Zukunft in der Zukunft für eine anfängliche Synchronisierung gekauft werden.

2) Wollen wir für den Inter-Context-Nachrichtenbus ein Thema pro begrenzter Kontext verwenden (und haben den Namespace, um die begrenzten Kontexte zu gruppieren)? Oder ein einzelner begrenzter Kontext pro Namespace?

3) Die Nachrichtenbusdokumentation sagt, dass Nachrichten außerhalb der Reihenfolge ankommen können, welchen Algorithmus zur Neu zusammengebaut werden soll? Was würde passieren, wenn Nachrichten 6 und 8 empfangen wurden, aber 7 kam nie? Würden wir auf eine bestimmte Zeit warten, und dann fahren Sie einfach fort? Wie man Selbstreparatur zulässt?

4) Ich stelle mir vor, das obige ist in fast allen DDD-Projekten ziemlich üblich, gibt es Bibliotheken, die das Messaging mit dem Befehls- / Antwortprotokoll umgehen, um die Synchronisierung früherer Ereignisse aus einem fremden begrenzten Kontext anzufordern?

War es hilfreich?

Lösung

Dies beantwortet die meisten Ihrer Fragen nicht, gibt Ihnen jedoch eine Alternative.

Viele dieser Probleme gingen weg, als ich anfing, Events zu ziehen, anstatt sie an mich zu drängten.Wenn ich ziehe, halte ich einfach einen Kontrollpunkt der Ereignisnummer, bis ich verarbeitet habe.Wenn ich den Wiederaufbau neu erstellen muss, entfernen Sie die Lesemodelle und den Checkpoint und die neuen Lese-Modelle werden automatisch erstellt.Da ich einen einzelnen Schriftsteller verwende, sind Duplikate kein Problem.Die Bestellung ist auch kein Problem.

Wir haben auch noch Ereignisse herausgedrückt - aber diese werden nur für reaktives Verhalten verwendet.Beispielsweise;Wenn eine Bestellung aufgestellt ist, drucken Sie ein Ticket aus.

Ob dies für Sie sinnvoll ist, hängt davon ab, wie schnell Sie auf Dinge reagieren müssen, und wie frisch Sie Ihre Daten benötigen (1 Sekunde gegen 30 Sekunden usw.).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top