Description
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.