-
Notifications
You must be signed in to change notification settings - Fork 11
Event Streaming
In a traditional entity-relationship model based system (such as a system based on a relational database) we capture all of the attributes of every entity in our system and use them to model the current state of each entity in that system.
In event sourcing we look at things somewhat differently: we capture the history of every Event that occurs to an entity in an append-only list and we then walk through that list in order to derive the state of that entity as at any given point in time.
Event sourcing is an excellent way of storing information for any system in which we want to be able to view or model the change in state of an entity over time. Typical examples include bank accounts being made of a series of deposit and withdrawal events and being able to derive the balance of that account as at any given point in time by playing through those events in turn. This derivation of state from the events is called a Projection