SPLASH 2023
Sun 22 - Fri 27 October 2023 Cascais, Portugal
Tue 24 Oct 2023 11:00 - 11:22 at Oceanus - Empirical studies & experience reports Chair(s): Marcel van Lohuizen

The role and scope of configuration often transcends people’s initial perceptions. Virtually every component of your technology stack - from databases, applications, schemas, services, workflows, policies, to models, and networking - requires or represents some aspect of configuration. Complicating this further, significant redundancies and interdependencies may exist among these various configuration aspects, frequently serving as catalysts for system failures. As our systems continue to grow more complex, it becomes increasingly essential to identify and mitigate such failure-prone redundancies and interdependencies.

By examining an example system, we uncover various types of configurations, highlighting where redundancies emerge and how these redundancies can bring about issues. We employ CUE to model these configurations, thereby making such redundancies more apparent. From there, we explore real-life cases of substantial outages instigated by configuration failures and how the nature of such failures can evolve as a company grows. Notably, these failures are often preventable through early error detection, or “shifting left,” as it is colloquially known.

We demonstrate that the distinctions among these various configuration types can often be vague, appearing more as a continuum than strictly segregated categories. As a consequence, dismantling these configuration silos may be a requisite to adequately address certain configuration challenges. We illustrate how CUE can be utilized to facilitate this process.

To conclude, we differentiate what we refer to as “configuration engineering” from traditional software engineering, emphasizing how logical programming can be instrumental in modeling configuration.