By simple definition, Event Sourcing is an architectural pattern which determines the state of an application by a sequence of events.
The best way to understand Event Sourcing is by using an analogy. One of the best examples would be online shopping, which is an event processing system. Somebody places an order, which gets registered in an order queue for a vendor ordering system. Then, this status is notified to the customer at different stages of the order being delivered.
All these events, which occur one after the other, form a sequence of events called an event stream, which should look something like the following diagram:
So, Event Sourcing takes consideration of events which happened in the past, and are recorded for processing based on certain transactions.
An ideal Event Sourcing system is based on the building blocks shown in the following...