# Event-Sourcing

With our usual state-based system:

* CRUD operations executed on the DB table, which means we mutate the data as needed
* Current state can be seen directly at the DB

Meanwhile, with event-sourcing, we store extra data (every event) that happens, not storing only the last state.

* Create (append-only) and read operations only on DB tables
* To get the current state, the data must be processed (reduced) first
* Stored as event log, so no information loss
* We can replay and see the state at any point of time
* Events are immutable, allowing us to see evidence and how something happened (we can also see why something went wrong)
