Concurrency in Scala and on the JVM
summary
Implements an HTTP server that races the DB and cache (DB call retries three times) and fan‑outs per‑ingredient demand to per‑websocket queues that must send sequentially. Compares three toolchains: ZIO-style lazy effects and fibers with combinators, deterministic testing via a test clock; Akka/typed actors with eager Futures, manual race via a short‑lived actor and automatic supervision but no interruption; and Loom/Ox using virtual threads and structured concurrency — working but experimental, with Java interruption semantics and weaker type safety.
AI-written summary · about
chapters (8)
- 0:00Welcome
- 1:13Local concurrency on JVM
- 3:21Concurrent HTTP server use case
- 5:50ZIO functional effects concurrency
- 17:46Akka/Pekko actors concurrency
- 28:25Project Loom and Ox concurrency
- 39:15Comparing concurrency approaches
- 41:41Speaker and resources
related talks
48mConcurrency: It’s Harder (and Easier) Than You Think
42mBuilding Bulletproof Concurrent Applications on the JVM
50mFlavors of Concurrency in Java
49mConcurrency and Streaming in the Age of Loom
54mStructured Concurrency: Hierarchical Cancellation & Error Handling
03h 29mConcurrency with Clojure
56mFlavors of Concurrency in Java
31mThe Concurrency Triangle
