What is the difference between Event Driven and Event sourcing?

  softwareengineering

I’m studying domain driven design (DDD) and came across terms: Event Driven and Event sourcing. I know it’s about publishing event from producer to consumer, and store the log, so my question is:

What is the difference between Event Driven and Event sourcing?

The term Event driven architecture is used for any kind of software system which is based on components communicating mainly or exclusively through events. For example, almost any major GUI framework on any popular platform uses event-driven mechanics. The term “event” usually means “notification” in this context.

Event sourcing is a much more special term, referring to systems where the whole application state is stored as a sequence of events. A well-known popular class of examples are transactional database systems, which store any state changes in a transaction log. Here, the term “event” refers more to “state change”, not only to “notification”.

So any system which uses “event sourcing” as its core mechanics can be seen as also as an even-driven system, but the opposite is not true in general.

2

LEAVE A COMMENT