Regular databases store the current state of an application. Records and Documents hold the information from CRUD (Create, Read, Update, and Delete) operations. But data changes over time, yet we only store the latest version. All of the intermediate versions are lost.
What would we want that for anyway?
Imagine being able to rewind time, and see exactly what was happening at a given moment?
What were your customers doing? What did they do next?
An error happened, what was going on? What do I need to fix?
An important process occurred, what are the specific steps?
If you have all of the data, you can analyze it! Why throw it out?
With Event Sourcing, data is stored as a series of Events in a log. It's append only, meaning data is never lost, just added to.
Even better, it's a new way of thinking about our data.