As developers, we store our code in a system (GIT) that allows us to time travel, compare, work together, and reason about our code. We can go back in time to learn who made a particular change, where a bug originated, or which parts of our code have a high change rate. It stores our data/code’s evolution, a proven and valuable practice compared to just keeping the latest state on disk.
Still, as soon as we start building systems ourselves, we (mostly) model our system ‘as if’ we would store code on disk; we only keep the latest state, model it in the way we seem fit at that moment in time, and make it, so it fits in our relational database.
This session will explore the ideas behind event sourcing, a way to store and keep the evolution of data/ events in our system. Together, we will look at how to use event sourcing on top of Azure Functions with custom bindings, Azure Storage, and Azure EventGrid.