Event sourcing is a design pattern to help build applications that are focused on the domain and easy to extend.
The key idea is to use a persistent event log to store every change to your data as an alternative the more classical relational database model for Rails applications. In one sentence, it is a git-like approach to manage your data.
Once you accept the premise of having an event log you can use it to extend your application in all sort of creative ways. You can use it to synchronize the data between your microservices, or you can trigger side effects without cluttering your controllers, or you can build data views optimized for your query needs.
Friday, 6th July 2018