New Directions in Cloud Programming
📜 Abstract
Nearly twenty years after the launch of AWS, it remains difficult for most developers to harness the enormous potential of the cloud. In this paper we lay out an agenda for a new generation of cloud programming research aimed at bringing research ideas to programmers in an evolutionary fashion. Key to our approach is a separation of distributed programs into a PACT of four facets: Program semantics, Availablity, Consistency and Targets of optimization. We propose to migrate developers gradually to PACT programming by lifting familiar code into our more declarative level of abstraction. We then propose a multi-stage compiler that emits human-readable code at each stage that can be hand-tuned by developers seeking more control. Our agenda raises numerous research challenges across multiple areas including language design, query optimization, transactions, distributed consistency, compilers and program synthesis.
✨ Summary
The supplied URL is the homepage of Adrian Colyer’s Morning Paper blog rather than a paper-specific page. The homepage’s top post links to and discusses this paper, so the extraction is based on New Directions in Cloud Programming. (blog.acolyer.org)
The paper proposes PACT—Program semantics, Availability, Consistency, and Targets for optimization—as a decomposition for cloud programming. It presents Hydro as a research agenda and language stack intended to lift familiar sequential or distributed programs into declarative intermediate representations, compile them through multiple human-readable stages, and ultimately execute them through the Hydroflow runtime. The approach combines ideas from declarative languages, dataflow, reactive programming, distributed consistency, program synthesis, and multi-objective deployment optimization. (cidrdb.org)
The paper’s clearest subsequent influence is the continuing Hydro research project. The project identifies this work as its original vision paper and reports follow-on systems and research on Hydroflow, automated compilation for distributed programs, CRDT synthesis, streaming semantics, and rule-driven optimization of distributed protocols. A later SIGMOD paper applies query-rewrite techniques to distributed-protocol scaling, reporting 5× throughput improvement for two-phase commit and 3× for Paxos in its evaluated implementations. (hydro.run) The associated Hydroflow implementation and documentation also explicitly trace the project back to this paper, indicating direct engineering continuation rather than merely conceptual citation. (github.com)