Warum sind Event Sourcing (CQRS) -Datenbanken nicht beliebt? [geschlossen]

7

Die Idee einer Datenbank, in der Ereignisse gespeichert und das Nettoergebnis dieser Ereignisse angezeigt werden, ist für die reale Welt realistisch (und was tatsächlich passiert ist).

Warum sind solche Datenbanken angesichts des flexiblen Angebots an Event-Sourcing-Datenbanken (z. B. Anzeigen der Datenbank zu unterschiedlichen Zeitpunkten) nicht beliebter?

Zum Beispiel sind die einzigen mir bekannten Datenbanken, die Event-Sourcing durchführen, Datomic und Event Store.

Greg
quelle

Antworten:

7

Wahrscheinlich ist das Write-Ahead-Protokoll, das so ziemlich jedes SQL-Produkt (und viele No-SQL-Produkte) verwendet, ein Ereignisstrom, der die Neuerstellung von Objekten (Tabellen) im Falle eines Instanzfehlers ermöglicht. Zugegeben, die meisten von ihnen sind undurchsichtige Binärformate, die für die Abfrage von Anwendungen nicht geeignet sind.

Dafür definiert der ANSI-Standard jetzt zeitliche Merkmale für SQL. Dies zeichnet das Intervall auf, in dem ein bestimmter Wert gültig war. Bei der Neuerstellung der Historie wird ein Datum-Uhrzeit-Wert "in" in das Prädikat aufgenommen. Es gibt Produkte speziell zum effizienten Speichern von Zeitreihendaten in großen Mengen.

Das Nettoergebnis aller Änderungen ist genau das, was jede Tabelle / jedes Dokument / jeder Spaltenspeicher für Anwendungen bereitstellt.

Um die eigentliche Frage zu beantworten: Die Ergebnisse der CQRS-Filialen sind meist bei anderen, bekannteren und unterstützten Produkten erhältlich. Das Geschäftsrisiko einer Einführung kann die funktionalen Vorteile überwiegen, sodass die Produkte nicht weit verbreitet sind.

CQRS kann sowohl als Entwurfsmuster als auch als Produkt betrachtet werden. Als solches könnte jeder Mainstraim-Speicher ein CQRS implementieren.

Buchhaltungs-, Bank- und Finanzsysteme im Allgemeinen speichern vollständige Informationen über jede Transaktion, dh jede Zustandsänderung. Denken Sie an Ihren Kontoauszug - er enthält eine vollständige Liste aller Gutschriften und Belastungen, die im Berichtszeitraum aufgetreten sind. Möglicherweise verwendet Ihre Bank eine relationale Datenbank, um dies zu erreichen. Ich weiß, dass Xero SQL Server verwendet. Es ist ein Grundsatz der doppelten Buchführung (Buchhaltung für Sie und mich), dass ein Konto ohne eine Transaktion (dh ein "Ereignis") nicht geändert werden kann und jede einmal erfasste Transaktion unveränderlich ist.

Michael Green
quelle
2
Was sind einige Beispiele für CQRS-Geschäfte in bekannteren und unterstützten Produkten? Würden Unternehmen wie Xero (Online-Buchhaltungssoftware) oder Bankinstitute nur Tabellen einfügen und ihre eigenen Anwendungen verwenden, um Event-Sourcing zu generieren? Das Event-Sourcing hat wohl den vollständigsten Audit-Trail.
Greg