Event Sourcing is an approach to building software with a long track record of success. By placing business concepts at the heart of our code, we can decouple systems into small services that can be quickly built, changed, and replaced.
Although Event Sourcing has been around for many years, it remains outside the mainstream paradigm of software development--much to our detriment.
By placing the highest value on the simple capture of essential business events without attempting to interpret them, and by relegating all interpretations of those events to completely disposable subsystems, Event Sourcing enables us to move faster by supporting rapid experimentation with new perspectives, new user interactions, and new insights into your business. Without needing to predict the future, we are in a much better position to respond to it when it arrives.
Event Sourcing is agnostic of technology stack and language style, but it goes well with another pattern called CQRS: Command Query Responsibility Segregation. In this talk, we will do a deep-dive into the two patterns and scope out a system that has:
* Receiving and validating Commands that, if successful, result in Events.
* Interpreting Events into denormalised projections for very fast reads.
* Single responsibility services for reacting to Events by creating other events and, if necessary, triggering external behaviour.
I gave this talk at SATURN on May 3, 2017. Video can be found here: https://www.youtube.com/watch?v=EqpalkqJD8M