Traditionally, we create structural models for our applications, and store the state of these models in our databases. But there are alternatives: Event Sourcing is the idea that you can store all the domain events that affect an object, and replay these events to restore the object’s state. This may sound counterintuitive, because of all the years we’ve spent building relational, denormalized database schemas. But it is in fact quite simple, elegant, and powerful.
In the past 18 months, I’ve had the pleasure of building and shipping two event sourced systems. In this session, I will show how you can build event sourced models using PHP.