Locality, Statefulness, and Causality in Distributed Information Systems (Concerning the Scale Dependence Of System Promises)
Several popular best-practice manifestos for IT design and architecture use terms like `stateful', `stateless', `shared nothing', etc, and describe `fact based' or `functional' descriptions of causal evolution to describe computer processes, especially in cloud computing. The concepts are used ambiguously and sometimes in contradictory ways, which has led to many imprecise beliefs about their implications. This paper outlines the simple view of state and causation in Promise Theory, which accounts for the scaling of processes and the relativity of different observers in a natural way. It's shown that the concepts of statefulness or statelessness are artifacts of observational scale and causal bias towards functional evaluation. If we include feedback loops, recursion, and process convergence, which appear acausal to external observers, the arguments about (im)mutable state need to be modified in a scale-dependent way. In most cases the intended focus of such remarks is not terms like `statelessness' but process predictability. A simple principle may be substituted in most cases as a guide to system design: the principle the separation of dynamic scales. Understanding data reliance and the ability to keep stable promises is of crucial importance to the consistency of data pipelines, and distributed client-server interactions, albeit in different ways. With increasingly data intensive processes over widely separated distributed deployments, e.g. in the Internet of Things and AI applications, the effects of instability need a more careful treatment. These notes are part of an initiative to engage with thinkers and practitioners towards a more rational and disciplined language for systems engineering for era of ubiquitous extended-cloud computing.
READ FULL TEXT