es zu diesem Warenkorb gekommen? wurden nur diese beiden Produkte in den Warenkorb gepackt? wurden evtl. auch andere Produkte ergänzt, aber wieder entfernt? wurde die Anzahl zwischenzeitlich geändert?
ihr mir eine Statistik über Produkte erstellen, die einmal im Warenkorb eines Benutzers waren, dann aber von diesem Benutzer nie bestellt wurden? “ “ Klar, dafür können wir eine Liste von entfernten Produkten p egen. Wird ein Produkt dann später bestellt, kann es aus dieser Liste entfernt werden. “ “
ihr mir eine Statistik über Produkte erstellen, die aus dem Warenkorb entfernt, dann aber zu einem späteren Zeitpunkt bestellt wurden? “ “ Klar, die Liste der entfernten Produkte kann dahingehend erweitert werden, dass das Datum der Bestellung ergänzt wird, anstatt das später bestellte Produkt aus der Liste zu entfernen. “ “
stellt aktuellen State durch Aufruf entsprechender apply Methoden wieder her void save(Object object) : holt sich eine Liste aller neuen Events speichert diese in der Reihenfolge ihres Auftretens
Ist das nicht wahnsinning inperformant? → glücklicherweise weit weniger als man denkt Ein Event-Store arbeitet append-only: → Events können beliebig gecacht werden
verwendet werden Prozessoren: z.B. E-Mail senden auf keinen Fall für Replays verwenden Sagas/Prozess-Manager langlaufende Prozesse, die mehr als ein Command benötigen und/oder mehrere Event-Streams betreffen auf keinen Fall für Replays verwenden
die einmal im Warenkorb eines Benutzers waren, dann aber von diesem Benutzer nie bestellt wurden? “ “ Klar, wir brauchen nur eine neue Projektion und müssen über alle relevanten Events iterieren. “ “
die aus dem Warenkorb entfernt, dann aber zu einem späteren Zeitpunkt bestellt wurden? “ “ Klar, wir brauchen nur eine neue Projektion und müssen über alle relevanten Events iterieren. “ “
Buchhaltung Jahresabschluss) Bulk-Operationen → Read-Model abfragen → Command je Event-Stream "Events sind immutable" → Korrektur-Events (s. Buchhaltung) Eventual Consistency → häu g kein echtes Problem