Event Sourcing

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Event Sourcing (ES)[1] ist ein Verfahren, bei dem alle Veränderungen des Zustands einer Softwareanwendung als Sequenz von Events abgebildet und aufgezeichnet werden.[2] Event Sourcing wird zu den Analysemustern gezählt.

Implementierung[Bearbeiten | Quelltext bearbeiten]

Funktionen bzw. Methoden werden zunächst gemäß dem CQS-Prinzips nach Queries und Commands aufgeteilt. Commands werden als Events abgebildet und an einen Enterprise Service Bus (ESB) geleitet.

Alle Events werden von einem Event Store aufgezeichnet. Hierbei kommen Datenbankensysteme zum Einsatz. Alternativ kann direkt in das Dateisystem von Festplatten geschrieben werden, was eine höhere Streaming-Performance aufweist als Datenbanken.

Der Einsatz eines Event Stores bietet den Vorteil, dass alle Änderungen am System jederzeit durch eine Wiederholung der Events deterministisch nachgestellt werden können. Dies bietet Vorteile bei der Nachvollziehbarkeit, etwa aus rechtlichen Gründen oder im Debugging. Um die Performance bei der Wiederherstellung eines gegebenen Zustandes zu erhöhen, werden in regelmäßigen Abständen Snapshots des aktuellen Zustands durchgeführt.

Für die einzelnen Events werden am ESB Event-Handler registriert, welche z. B. Zustandsänderungen an denormalisierten Datenbanken durchführen, E-Mails versenden oder Fehler protokollieren.

Vorteile[Bearbeiten | Quelltext bearbeiten]

  • Hohe Skalierbarkeit
  • Einfache Anpassung an veränderte Business-Anforderungen
  • Nachvollziehbarkeit, da alle Änderungen aufgezeichnet werden
  • Jederzeit nachträgliche Datenanalyse möglich
  • Deterministische Fehleranalyse möglich

Nachteile[Bearbeiten | Quelltext bearbeiten]

  • Hoher Aufwand bei der Implementierung

Weblinks[Bearbeiten | Quelltext bearbeiten]

Quellen[Bearbeiten | Quelltext bearbeiten]

  1. Martin Fowler: EventSourcing. 12. Dezember 2005, abgerufen am 13. Juli 2014 (englisch).
  2. Event Sourcing Pattern. In: MSDN. Microsoft, abgerufen am 13. Juli 2014 (englisch).