Flo: A Semantic Foundation for Progressive Stream Processing
Shadaj Laddad, Alvin Cheung, Joseph M. Hellerstein, Mae Milano
Abstract
Streaming systems are present throughout modern applications, processing continuous data in real-time. Existing streaming languages have a variety of semantic models and guarantees that are often incompatible. Yet all these languages are considered “streaming”–what do they have in common? In this paper, we identify two general yet precise semantic properties: streaming progress and eager execution. Together, they ensure that streaming outputs are deterministic and kept fresh with respect to streaming inputs. We formally define these properties in the context of Flo, a parameterized streaming language that abstracts over dataflow operators and the underlying structure of streams. It leverages a lightweight type system to distinguish bounded streams, which allow operators to block on termination, from unbounded ones. Furthermore, Flo provides constructs for dataflow composition and nested graphs with cycles. To demonstrate the generality of our properties, we show how key ideas from representative streaming and incremental computation systems—Flink, LVars, and DBSP—have semantics that can be modeled in Flo and guarantees that map to our properties.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 2b0a6cf0-3e9e-4ae7-938c-3019d11f0238Cited by top-tier papers3
- Let It Flow: A Formally Verified Compilation Framework for Asynchronous DataflowZhengyao Lin, Yi Cai, Milijana SurbatovichPLDI 2026 · 1 citation
- Functional Meaning for Parallel StreamingNick Rioux, Steve ZdancewicPLDI 2025 · 1 citation
- DeCo: A Core Calculus for Incremental Functional Programming with Generic Data TypesTimon Böhler, Tobias Reinhard, David Richter, Mira MeziniOOPSLA 2026
Builds on4
- DBSP: Automatic Incremental View Maintenance for Rich Query LanguagesMihai Budiu, Tej Chajed, Frank McSherry, Leonid Ryzhyk et al.VLDB 2023 · 41 citations
- Seminaïve evaluation for a higher-order functional languageMichael Arntzenius, Neel KrishnaswamiPOPL 2020 · 15 citations
- Stream TypesJoseph W. Cutler, Christopher Watson, Emeka Nkurumeh, Phillip Hilliard et al.PLDI 2024 · 7 citations
- Optimizing Nested Recursive QueriesAmir Shaikhha, Dan Suciu, Maximilian Schleich, Hung Q. NgoSIGMOD 2024 · 5 citations
Related papers
- Stream processing with dependency-guided synchronizationKonstantinos Kallas, Filip Niksic, Caleb Stanford, Rajeev AlurPPoPP 2022 · 4 citations
- StreamQL: a query language for processing streaming time seriesLingkun Kong, Konstantinos MamourasOOPSLA 2020 · 8 citations
- Reactive probabilistic programmingGuillaume Baudart, Louis Mandel, Eric Atkinson, Benjamin Sherman et al.PLDI 2020 · 1 citation
- AgileLog: A Forkable Shared Log for Agents on Data StreamsShreesha G. Bhat, Tony Hong, Michael A Noguera, Aishwarya Ganesan et al.SOSP 2026
- DZiG: sparsity-aware incremental processing of streaming graphsMugilan Mariappan, Joanna Che, Keval VoraEuroSys 2021 · 47 citations
