Flow: An Introduction
Talkat FoundationDB Summit 2019 · on Monday, 2019-11-18· at 10:40· Grand Ballroom 8, Marriott Marquis San Diego Marina·
summary
Flow is the custom language that implements FoundationDB’s actor-based concurrency model inside C++ and is compiled by a C# actor compiler into C++ that runs the database. It uses futures/promises and unidirectional streams, supports remote futures for RPC, and intentionally omits parallel threads. Key concrete pitfalls: variables must be marked state to survive yields, use wait next for streams, the compiler fails type deduction and lambda captures, and actors cancel when future count hits zero, so lifetime must be managed.
AI-written summary · about
chapters (15)
- 0:00Intro
- 0:22WHAT IS FLOW?
- 2:40A SIMPLE ACTOR...
- 4:00FUTURES AND PROMISES
- 4:40A LOOK AT THE GENERATED CODE
- 5:01THE GENERATED ACTOR
- 6:05PROBLEM: NO STACK
- 7:37WAITING ON MULTIPLE FUTURES
- 8:36STREAMS EXAMPLE
- 10:04REMOTE FUTURES
- 11:36THE ACTOR COMPILER DOESN'T UNDERSTAND C++
- 12:48ARGUMENTS TO ACTORS ARE COPIED
- 13:37CANCELLING ACTORS
- 14:30WEIRD SCOPING RULES
- 16:01SWALLOWING EXCEPTIONS: FIX 1
related talks
17mFlo: a Semantic Foundation for Progressive Stream Processing
01h 02mHydroflow: A Compiler Target for Fast, Correct Distributed Programs
54mHow I Learned to Stop Worrying & Love the Flow
38mPolyglot Actor Model on Flink Stateful Functions
38mDeploying Stateful FaaS on Streaming Dataflows
43mStream Processing and Applications in the Modern Age
42mInterview and AMA with the creators of Stateful Functions
21mFlowCert: Translation Validation for Asynchronous Dataflow Programs via Dynamic(…)
