Hydroflow: A Compiler Target for Fast, Correct Distributed Programs
summary
Hydroflow presents a Rust-based dataflow IR that compiles into networked transducer binaries, uses a semilattice formalism to make CRDT-style state composable, and provides three concrete transformations: automated refactoring into deployable blocks, safe replication via lattice-based types, and key-based partitioning for sharding. Benchmarks match a handwritten C++ key‑value store (Anna) for latency and scaling. The system uses monotonicity/Calm analysis to avoid coordination where possible and offers provably correct rewrite rules to optimize protocols like Paxos, though cost‑based automation remains work in progress.
AI-written summary · about
chapters (20)
- 0:00Introduction and speaker welcome
- 3:14Motivation for programming the cloud
- 8:54Key value store example Anna benchmark
- 13:27Hydroflow compiler and transducer IR
- 15:11Transducer IR and data flow programming
- 16:57Building a key value store in Hydroflow
- 20:29Replicating the key value store
- 21:55Advanced Hydroflow operators and semantics
- 22:18Compilation and performance optimization
- 24:42Matching handwritten C++ performance
- 25:47Consistency and the CALM theorem
- 31:02Semilattices and monotonicity
- 33:28Reading without coordination
- 36:16Coordination protocols in Hydroflow
- 37:42Lattice composition and correctness
- 38:03Data flow types and monotonicity analysis
- 41:55Optimizations across transducers
- 43:39Optimizing Paxos with Hydroflow
- 48:10Future directions and open challenges
- 50:14Talk conclusion and Q&A introduction
related talks
17mFlo: a Semantic Foundation for Progressive Stream Processing
19mSuki: Choreographed Distributed Dataflow in Rust
20mFlux: Liquid Types for Rust
19mFlow: An Introduction
17mLet It Flow: A Formally Verified Compilation Framework for Asynchronous Dataflow
01h 00mDataflow Engines for Executing Cloud Applications: a Maslow's Hammer?
14mA Refinement Methodology for Distributed Programs in Rust
27mDistributing and Parallelizing Non-canonical Loops
