The-Inevitable-Event-Centric-Book icon indicating copy to clipboard operation
The-Inevitable-Event-Centric-Book copied to clipboard

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

Open ylorph opened this issue 4 years ago • 3 comments

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 avatar May 22 '20 06:05 ylorph

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

ylorph avatar May 22 '20 06:05 ylorph

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

MerrionComputing avatar May 22 '20 07:05 MerrionComputing

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).

johnbywater avatar May 22 '20 13:05 johnbywater