Event‐sourced, observable software architectures: An experience report. (5th July 2022) - Alongi, Francesco; Bersani, Marcello M.; Ghielmetti, Nicolò; Mirandola, Raffaela; Tamburri, Damian A.
Abstract: The speeding growth of the IT market and the spreading of disruptive technologies are leading towards more and more risky operations in need of constant upkeep, monitoring as well as proactive orchestration. On the one hand, the property allowing a system to be catered by automated monitoring and healing technology is defined as observability . On the other hand, appropriate design principles to manifest observability were originally referred as event sourcing by its inventor Martin Fowler and warrant for the aforementioned sustainable software operations. Both event sourcing and observability are complex to leverage on and design for. In an effort to understand more on both concepts, we offer an experience report on their practical use, featuring: (1) a rigorous definition of software architecture observability and a set of principles to design for observability using augmented forms of well‐known design patterns in line with event sourcing; and (2) an impact analysis in the context of a case study. Our study reveals several interesting notions around the concept of observability but our findings also make explicit new architecture trade‐offs that software architects and stakeholders need to consider as first‐class architecture‐level concerns.