Hydro

The Hydro project is a large-scale effort to design a new programming toolchain that allows developers to easily build reliable, efficient distributed systems.

Nearly all the software we use today is part of a distributed system — working across clouds, mobile devices and web clients. Nonetheless, our programming languages and compilers are still based on technologies from the 20th century era of single-machine programming. As a result of the challenges of distributed computing, the task of building and maintaining modern software services is increasingly challenging and expensive.

Hydro is a new compiler stack that addresses the concerns of distributed systems, taking lessons from the success of scalable data management software, with foundations from modern algebra. Hydro is designed to automatically refactor high-level code into components, and determine components that can be consistently and reliably scaled up and down via replication and/or partitioning. These transformations in turn allow distributed programs to be optimized for various goals, including parallelism, memory scaling, cloud costs, performance isolation, geoproximity and physical security. Early results from the project demonstrate successes optimizing programs ranging from data infrastructure (key-value stores), to low-level distributed protocols (Paxos, BFT).


Contributors

See all contributors at hydro.run/people

Publications

See all publications at hydro.run/research