Libprocess is a library to support building systems out of composable concurrent components. It is used heavily in the Apache Mesos project, a cluster scheduler for the datacenter. Libprocess introduces futures which enable asynchronous programming, as well as actors which provide a simple abstraction for reasoning about concurrency.
In this presentation, we will start by introducing basic functional (and monadic) programming concepts which are foundational to the libprocess library. We will then introduce actors and explain the role they play in concurrent and distributed programming. Next we'll explore how libprocess actors nicely complement futures to solve many practical problems that arise when using futures and threads.
We'll conclude the presentation discussing some of the other abstractions in libprocess, such as Clock, which can be extremely helpful for testing and reasoning about distributed systems. Throughout the presentation we'll also share many of the practical issues and constraints that we’ve encountered and some of the solutions and workarounds that we’ve had to introduce.
Ben Hindman is the co-founder of Mesosphere, Inc.