An empirical characterization of event sourced systems and their schema evolution — Lessons from industry

Publication date

2021-08

Authors

Overeem, Michiel
Spoor, Marten
Jansen, SlingerORCID 0000-0003-3752-2868ISNI 000000039050399X
Brinkkemper, SjaakISNI 0000000374861981

Editors

Advisors

Supervisors

Document Type

Article
Open Access logo

License

cc_by

Abstract

Event sourced systems are increasing in popularity because they are reliable, flexible, and scalable. In this article, we point a microscope at a software architecture pattern that is rapidly gaining popularity in industry, but has not received as much attention from the scientific community. We do so through constructivist grounded theory, which proves a suitable qualitative method for extracting architectural knowledge from practitioners. Based on the discussion of 19 event sourced systems we explore the rationale for and the context of the event sourcing pattern. A description of the pattern itself and its relation to other patterns as discussed with practitioners is given. The description itself is grounded in the experience of 25 engineers, making it a reliable source for both new practitioners and scientists. We identify five challenges that practitioners experience: event system evolution, the steep learning curve, lack of available technology, rebuilding projections, and data privacy. For the first challenge of event system evolution, we uncover five tactics and solutions that support practitioners in their design choices when developing evolving event sourced systems: versioned events, weak schema, upcasting, in-place transformation, and copy-and-transform.

Keywords

CQRS, Event sourcing, Event-driven architecture, Grounded theory, Schema evolution, Software architecture patterns, Software, Information Systems, Hardware and Architecture

Citation

Overeem, M, Spoor, M, Jansen, S & Brinkkemper, S 2021, 'An empirical characterization of event sourced systems and their schema evolution — Lessons from industry', Journal of Systems and Software, vol. 178, 110970. https://doi.org/10.1016/j.jss.2021.110970