ylorph / The-Inevitable-Event-Centric-Book

Some day, someone might write an authoritative book about this aspect. Let's call that inevitable book Event Centric as a placeholder title (this is a quote...)
71 stars 7 forks source link

Problem: Do We Need DDD Tactical Patterns when Doing EventSourcing ? #50

Open ylorph opened 4 years ago

ylorph commented 4 years ago

Short answer : no

It is possible to do Aggregates without doing Event Sourcing and to do Event Sourcing without doing Aggregates - and it may be that the latter is a better fit if you find most of your Aggregates don't really do anything.

ylorph commented 4 years ago

@MerrionComputing ^ It's also one of the point of #47

MerrionComputing commented 4 years ago

The most common recipe seems to be DDD -> Microservices -> EDA -> CQRS -> Event Sourcing.

It does make sense for many systems, but any one of these components can add value without the others.

Event sourcing on its own can be used to add checklist/workflow to a standard MVC over CRUD system.

CQRS can be used to divide work between distributed teams regardless of how the rest of the application looks.

EDA can be used to communicate between a core application and follower applications (notifiers, monitoring, knock-on effect processing etc.)

DDD can be used to decide what (or even if) you should be developing in the first place

johnbywater commented 4 years ago

Good question :-) I wrote a little book about this: https://leanpub.com/eventsourcedddesignwithpython

I still prefer the term "Building Blocks" over "Tactical Patterns" but maybe that's just me not really having a definite feeling for what "tactical" distinguishes (in general the strategic/tactical distinction always left me a bit cold but I don't really know why).