Introduction to Event Sourcing for Rubyists
Alfredo Motta @mottalrd
CTO at CreditSpring, protecting people from unexpected financial emergencies. Loves data and scientific experimentation over intuition and learning over being too serious.
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.