The cloud gives everyone the power of infinite computing resources, but programming distributed systems is hard. Current programming models require very precise and error-prone reasoning about network reliability and message handling, and frequent expensive coordination stages in which all nodes have to communicate to reach consensus.

In this paper we present our ongoing work on Hydroflow, a new cloud programming model used to create constructively correct distributed systems. The model is a refinement and unification of the existing dataflow and reactive programming models. Like dataflow, Hydroflow is based on an algebra of operators which execute in streaming fashion across multiple nodes. However in Hydroflow data passed between operators can be of any lattice type, represented using a compositional lattice sub-language. These features allow us to construct provably monotonic distributed programs which can always make forward progress without incurring the high cost of coordination.

Hydroflow is primarily a low-level compilation target for future declarative cloud programming languages, but developers can use it directly to precisely control program execution or fine-tune and debug compiled programs.




Download Full History