Declarative distributed concurrency in Scala
summary
Claims a Scala DSL (chemist/Chemical Machine) expresses unrestricted concurrency as data-carrying “molecules” and reactions so many tasks fit in 15 lines of code, with a simple distributed extension using a DM (distributed molecule) constructor that plugs into Zookeeper. Examples include MapReduce, distributed cache and peer-to-peer chat; semantics are symmetric peer-to-peer (no master), reactions consume inputs atomically and schedule non-deterministically. Single-JVM version runs; full resilient distributed runtime is still in progress.
AI-written summary · about
chapters (13)
- 0:00Introduction to chemical machine
- 3:11Imperative concurrency problems
- 7:07Concurrency complexity classes
- 10:06Dining philosophers example
- 13:27Actor model comparison
- 18:20Chemical metaphor explained
- 24:02Managing complexity with reactions
- 25:05Throttling example
- 29:51Petri nets and chemical machine
- 31:18Distributed programming introduction
- 33:50Distributed MapReduce demo
- 34:52Purely functional aspects
- 36:37Q&A session
related talks
44mConcurrency in Scala and on the JVM
34mDIRECT STYLE SCALA
01h 05mScala: The Simple Parts
41mProgramming Distributed Systems
47mScala: The Unpredicted Lingua Franca for Data Science
41mTowards language support for distributed systems
48mMassively Parallel Distributed Scala Compilation And You
44mCAN WE FREE CONCURRENT PROGRAMMING FROM THE MONADIC STYLE
