Poster
An "Operating System" for the Edge
Presented at SRDS 2022
Download the original poster as PDF (9MB) >
Presented at the Symposium on Reliable Distributed Systems (SRDS) 2022 PhD track.
Interactive Programming
as an
"Operating System"
for Resilience in Distributed Systems
Goal#
find data model + editing ui
- inspect – see the state
- experiment – modify the state transiently
- evolve – experiment with real data, but safely manage side effects
User interactions (front end)#
- plain text/s-expressions
semi-structural editing - custom specific ad-hoc "lenses"
inline editor visualizations - feature flags and tracing
probes via sigils
Data model (back end)
immutable log of atomic facts
- history/time-aware
- represent both code (top level defs)
- and state (ephemeral and persistent)
- + reifies changes to both with provenance
EAVT (entity, attribute, value, time)
- access path independent 6NF
- E, A, V fully indexed, time for auditing purposes only
- save now, query later
capabilities and event handlers
- confine side effects for safe experimentation
Why?#
- situated systems (irregularity, information, continuous use, humans, change over time)
- safety + security w.r.t ambient authority
Related work#
Lisp machines, Smalltalk, Multics, Erlang/OTP, Emacs, REPLs, Notebooks, Datalog, Clojure, Datomic, XTDB, APX, STEPS, Eve, Dark, Unison, Mu, WASI
plain data, immutable
plain text, embellished
effects and capabilities
library, not a framework
☯️