New Directions in Cloud Programming

Written — Updated
  • Source:
  • References
  • Programmers will specify different aspects of a program in isolation and code generators will use them as rules or to control optimization algorithms.
  • Program Semantics
    • Programs will be compiled down to a delcarative IR.
    • "Verified Lifting" can be used to translate patterns that programmers are used to into the declarative format.
  • Availability
    • Declare Tolerance - redundancy per API
    • Declare Independence - How will computing units be distributed across AZs and so on
  • Consistency
    • History based (ACID isolation, replica consistency)
    • Property-based (Determinism or invariants)
  • Targets for Optimization
    • Minimize costs
    • Maximize Performance (latency, runtime, etc.)
    • The programmer can specify how they want these tradeoffs to be made
  • This forms the PACT programming stack
  • Hydro is one such stack that uses verified lifting to translate other programs into this paradigm and run them.
  • Challenges Ahead
    • IR Design, compilation, lifting, runtime
    • Protocol Synthesis that matches these concerns
    • Dataflow and reactive execution
    • Automatic recompilation and redeployment when needed

Thanks for reading! If you have any questions or comments, please send me a note on Twitter.