Skip to content

Event Stream

Duncan Jones edited this page Apr 29, 2016 · 1 revision

An event stream is a list of all the events that have occurred to an aggregate instance, in the order in which they occurred.

Each event has a common part which identified the type of event and maybe the sequence number or timestamp, and a data payload which represents the actual properties of the event that occurred.

Data in an event stream is designed to be append-only :- you can only add new events on to the head of the stream, never amend or delete any events once they have been written.

The event stream for each aggregate instance is logically separate (there are some backing stores where the data for different instances are physically in the same table etc.) which means we create instances of a reader or writer on a per-aggregate instance basis. This allows any query that needs to access multiple event streams to do so in an entirely parallel manner with only the last "collate" step being synchronised.

Clone this wiki locally