Ich versuche, Microservices für Bestell-/Transaktions-Prozess mit Event Sourcing-Konzept zu entwickeln. Die Mitarbeiter könnten eine Bestellung/Transaktion für einen Kunden per Telefon aufgeben. Das System zeichnet auch die Bestellnummer auf, die nach Kunden gruppiert ist. Es verwendet AWS Kinesis, um die Kunden-ID im Auftrag "OrderCreated" an den Service der Kundendaten zu senden, sodass wir die Nummer des erstellten Auftrags erhöhen können. Wir trennen die Auftragsabwicklung und Kunden basierend auf DDD-Konzept. Aber wir sollten menschliche Fehler erwarten, wenn die Mitarbeiter die falsche Kundennummer für die Bestellung auswählen. Also, es gibt eine Funktion, um den Kunden für verwandte Reihenfolge zu ändern.Ereignis Sourcing Choregraphy, die auf mehrere Datensätze beziehen
Das Problem ist das OrderUpdated-Ereignis enthält nur die neuesten Daten der Bestellung. Dies bedeutet, dass das Ereignis nur die neue Kunden-ID hat. Wir könnten die Anzahl der Bestellungen für neue Kunden erhöhen. Aber wir sollten die Bestellnummer für vorherige Kundennummer dekrementieren.
Wie löst man dieses Problem? Kannst du mir ein paar Vorschläge geben?
Vielen Dank im Voraus
Wo wird die Kundenauftragszählung gespeichert? Wird es auch im Consumer gespeichert, der orderUpdated- und orderCreated-Ereignisse verwendet? –
Die Anzahl der Kundenaufträge wird im Kundendaten-Snapshot gespeichert. Der Konsument verbraucht nur das Ereignis und bestimmt, ob der Kundenauftragszählwert inkrementiert oder dekrementiert werden soll. Hast du irgendwelche Vorschläge, um es besser zu machen? – Benedict