Most systems today store only the current state of their business entities. However, we can look at the current state through a different lens- as a derivative of previous behaviors, and store those behaviors as a sequence of events instead of the current state of the entity. The current state will be derived by replaying the events.
Event sourcing is a great way to implement event-driven applications, and it’s often combined with CQRS (Command Query Responsibility Segregation) which is a key part of an architecture based on event sourcing.
In this talk I will cover the principles of event sourcing pattern, how to model your data and implement business logic using this pattern and how to improve your system through the segregation of reads and writes with specialized read models.
You will also learn how those concepts fit in with event-driven micro services through a real life example- an invoices management app we built at Wix.