Presentation: Functional Infrastructure
Using Haskell with systemd, dbus, and nspawn for microservices: an experience report
At nstack, we’re using systemd, nspawn-containers and dbus to facilitate the construction of ‘algebraic’ infrastructure that allows developers to construct, compile, and compose type-safe microservices that run in the cloud in response to events. We're aiming to bring high-level concepts from functional programming to infrastructure (e.g. immutability, composability, type-checking).
Our platform is built from a combination of the systemd ecosystem and the Haskell programming language. In this talk we'll provide an experience report into our use of high-level functional programming with low-level Linux systems infrastructure.
* Building a reproducible packaging system around btrfs and atomic/ostree
* Building a language-agnostic typed IDL format on top of dbus
* Creating a high-level, type-safe interface into systemd from Haskell using the dbus API
* Spooling up typed services on demand as nspawn-containers through systemd
* Mapping existing external event sources (e.g. RPC / streams / HTTP) into dbus to trigger services