What is Event Sourcing?
Event Sourcing is a way of storing data in your application which is quite different from other storage solutions such as relational databases, key-value stores or document databases. Event Sourcing is a pattern that inherently provides features such as auditing, traceability and is especially suited for service-oriented applications in an event-driven architecture.
Using Event Sourcing means that you model all changes to your application as immutable events, which are stored as a sequence. This creates a timeline of changes to your system. The events in this timeline are never changed during normal operation of the system, instead every change is recorded as a new event, just like the doctor’s medical record of a patient or the financial bookkeeping of a company.
Serialized provide the support for Event Sourcing via the Aggregates API. In our terminology, (which we borrowed from Domain-Driven Design) Aggregates are the grouping of events which are kept together, so you can regard a particular medical record of a patient as an aggregate, consisting of all events for that patient over time.
Using Serialized gives you a head-start towards building your first application using Event Sourcing, without the need for advanced infrastructure configuration or management.