Function Passing Style: Typed, Distributed Functional Programming
summary
Claims a concrete programming model called Function-Passing: typed, serializable closures (spores) travel to stationary, immutable data containers (silos) rather than moving data. Implements lazy combinators to fuse operations and eliminate intermediates, records lineage persistence for cheap fault recovery, and prototypes in Scala with experiments on Spark/Databricks. Work is experimental but demonstrates end-to-end application-level recovery and reduced serialization bugs; performance and scalability beyond prototype cases remain unsettled.
AI-written summary · about
chapters (34)
- 0:00Introduction
- 0:37My PhD work
- 1:53Goal of this work
- 2:58Research project
- 3:31Fundamental idea
- 3:52Actor systems
- 4:39Function passing stuff
- 5:25A good paper
- 5:55Its timeless
- 6:14What makes a distributed system
- 6:48A better approach
- 7:39Keep communication explicit
- 7:50Two whoops
- 8:38siloref
- 13:32silo
- 13:55spore
- 14:08spore header
- 16:08spores and closures
- 16:30function literals
- 17:38Scala Improvement Document
- 18:32Under the Covers
- 20:09New SiloRef
- 21:03Apply Method
- 22:43Silos
- 23:36Fault Tolerance
- 24:39Reconstructing
- 26:09Summary
- 32:23Solution
- 34:07Spark
- 36:38Abstraction
- 38:48Decomposition
- 39:31Intuition for performance
- 40:52Side effects
- 41:40Questions
related talks
40mFunction-Passing, A New Model for Typed, Asynchronous and Distributed Programming
45mFunctional Programming — What's the Point?
15mTypestate via Revocable Capabilities
22mTransformation Function Called Higher-Order
43mHow to get away with functional programming in frontend applications
50mPinafore: Strongly Typed Information Representation
44mTelling the Truth with Types
48mTypelevel Scala: What does it mean ?
