Albert Zak

Supervisor: Karl M. Göschka

Interactive Programming as an “Operating System” for Resilience in Distributed Systems

 

Accrued incidental complexity in software systems lowers their resilience. This thesis proposes means for understanding and evolving complex situated systems through broadening the scope of what is considered to be the act and medium of programming. The key idea of this thesis is a universal data model based on accreting assertions and retractions of atomic facts over time to represent code and state in a single level, ephemeral and persistent. Changes of both code and data together with provenance are immutably reified in the same model.
A minimal set of interactions is expected to support live inspection and controlled modification of a running system by coupling the editing environment to the runtime and extending the language of REPL (read-evaluateprint-loop) interactions with means of direct manipulation. Combining algebraic effect systems with object capabilities allows safe experimentation on a live production system with the intent to increase resilience. By way of Design Science Research, this thesis will iteratively yield designs, implementations, and evaluations of usable proof-of-concept artifacts comprising a resilient interactive programming system.