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.
翻译:事件源系统由于可靠、灵活和可扩缩而越来越受欢迎。 在文章中,我们用一个显微镜指向软件结构模式,该模式在工业中迅速普及,但没有得到科学界的同等重视。我们通过建筑理论这样做,这证明是从从业人员那里提取建筑知识的适当定性方法。根据对19个事件源系统的讨论,我们探讨了事件源系统的理由和背景。描述了事件源模式本身及其与从业人员讨论的其他模式的关系。描述本身以25名工程师的经验为基础,使其成为新的从业人员和科学家的可靠来源。我们确定了从业人员所经历的五项挑战:事件系统演变、急剧的学习曲线、缺乏可用的技术、重建预测和数据隐私。关于事件系统演变的第一个挑战,我们发现了支持从业人员在开发事件源系统时作出设计选择的五种策略和解决办法:编造事件、薄弱的化学、高射、现场变换、复制和变现。