2017-03-02 3 views
4

Ich entwerfe gerade ein neues Unternehmenssystem. Der Zweck des Systems besteht darin, Mitarbeiter der Kundeninteraktionen (d. H. Ereignisse) mit dem Unternehmen zu verfolgen, anzuzeigen und zu benachrichtigen. Die Verwendung eines Ereignisquellenmusters, um ein Hauptbuch aller Kundeninteraktionen/Ereignisse aufzuzeichnen, scheint sehr gut zu passen, da all unsere zusätzlichen Domänenobjekte aus dem Datenstrom von Ereignissen abgeleitet sind. Ich stieß jedoch auf einen Artikel, der besagte, dass ein ganzes System, das auf Event Sourcing basiert, ein Anti-Pattern ist. Warum sollte das sein?Warum ist das Event-Sourcing eines ganzen Systems ein Anti-Pattern?

https://www.infoq.com/news/2016/04/event-sourcing-anti-pattern

+1

Ich denke, dass es darauf ankommt, was "System" bedeutet. Wenn Sie sich auf die gesamte Organisationssoftware als System beziehen, handelt es sich wahrscheinlich um ein Anti-Pattern. –

Antwort

5

Der Artikel ist in der Tat fasst die Rede Greg „Ein Jahrzehnt der DDD, CQRS, Event-Sourcing“ bei DDD Europe 2016.

ich persönlich dem Titel dieser Zusammenfassung nicht mögen, da dies definitiv nicht der Punkt von Gregs Rede ist . Grundsätzlich, wie üblich, kommt es auf.

Wenn Greg über das System spricht, meint er die ganze Sache. Diese Thing, in DDD-Bedingungen, hat eine Kontext-Map, mit mehreren begrenzten Kontexten an Ort und Stelle. In der Regel können Sie auf dieser Kontextkarte Subdomänen identifizieren, wobei eine oder mehrere zusätzlich als Core-Domäne (n) identifiziert werden können.

Wenn Sie Ihre Kerndomäne haben - es wird sich gut für fortgeschrittene Techniken eignen, wären dies traditionelle DDD-Taktiken wie Aggregate oder "schickere" Sachen wie Event-Sourcing. Die Implementierung muss in der Tat auf den Kontextanforderungen basieren.

Von dem, was Sie beschreiben, haben Sie eine gute Passform für Event-Sourcing. Aber Sie könnten über andere Teile Ihres Systems nachdenken, z. B. Kunden-/Kontaktverwaltung und Mitarbeiterverwaltung. Diese Details sollten von irgendwo kommen. Sind das vielleicht CRUD-Kandidaten? Also, wenn Ihre Kerndomäne in diesem Fall ist, Interaktionen zwischen Mitarbeitern und Kunden zu verfolgen, irgendeine Art von CRM, können Sie entscheiden, das Teil mit Event-Sourcing und anderen Teilen Ihres Systems mit weniger fortgeschrittenen Techniken zu bauen.

Denken Sie daran, alle Teile auf die Kontext-Maps trotzdem, einschließlich externer Systeme, dann sehen Sie, dass das System Wort bedeutet in dem Artikel und der Diskussion.

+0

Danke, ich hatte die Rolle von beschränkten Kontextkarten innerhalb der Gesamtansicht des Systems als Ganzes noch nicht ganz verstanden. Indem ich diesen begrenzten Kontext zuerst durchbrochen habe, habe ich erkannt, dass ich seine Aussage falsch verstanden habe. – hypno7oad

4

Der Artikel zitiert einen Vortrag von Greg Young. Der relevante Abschnitt ist sichtbar here.

Young erklärt, dass CRUD "alle Arten von verrückten Use Cases" versteckt und Korrektur Tippfehler als Beispiel gibt.

Er weist auch darauf hin, dass die Analyse in einem Event-basierten System teurer sein kann.

Im Allgemeinen trägt das Vorhandensein von unveränderlichen Ereignissen als Wahrheitsquelle für einen gegebenen Teil eines Systems, getrennt von gelesenen Modellen, Kosten und sollte nicht blind übernommen werden.

Young schlägt vor, dass "etwas eher ereignisgesteuertes" eher eine Top-Level-Architektur als CQRS/Event-Sourcing wäre.

Verwandte Themen