New Directions in Cloud Programming
Written
— Updated
- Source: https://www.youtube.com/watch?v=FeRg-7Sr1L8
- References
- The paper: https://arxiv.org/abs/2101.01159
- Hydro Project: https://hydro-project.github.io
- Blog Post: https://bit.ly/stateofserverlessart
- 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