Based on interviews with 25 engineers, in which we discussed 19 event sourced systems, we explore the rationale for and the context of event sourcing. Why do people use event sourcing, in what kind of systems do they apply it, and how satisfied are they. We also identify five challenges that practitioners experience: event system evolution, the steep learning curve, lack of available technology, rebuilding projections, and data privacy. We dig deeper into the first challenge, event system evolution. We uncover five tactics that engineers use in upgrading their event sourced system: versioned events, weak schema, upcasting, in-place transformation, and copy-and-transform. In this talk we share the results of our scientific study on event sourcing. We do not share the experience of one company, or one product, but the accumulated experiences of 25 engineers.
Event system evolution
A Scientific Study on Event Sourcing, Lessons from Industry
Lead Software Architect @ AFAS Software
PhD candidate @ University Utrecht
25 engineers with 103 years of
What types of
event sourcing and
How can event
sourced systems be
What are the
challenges faced in
Flexibility Complexity Trending Audit
Strict Cut-off Mutable
.NET JVM PHP Ruby,Scala,Go
“business analysts are telling us what the
events should be.” (E5)
“you capture business changes as a flow of events,
you align these events with real world events.” (E11)
internal versus external events
state propagation events
A single transaction
crossing event & query database
Steep learning curve
Finding your way
Related to the learning curve? Or the trend?
Things might take a while
Can we forget things?
Small steps, but how to stay stable?
Michiel Overeem, Marten Spoor, Slinger Jansen, and Sjaak
Brinkkemper. (2021). An Empirical Characterization of Event
Sourced Systems and Their Schema Evolution - Lessons from
Industry. In Journal of Systems and Software In Practice volume
178 (2021), 110970. https://dx.doi.org/10.1016/j.jss.2021.110970
Event sourcing is a pattern that solves the three problems that modern systems face:
flexibility, complexity, and reliability.
These benefits give enough reason to incorporate event sourcing in modern systems.