Comparing Approaches to Structured Concurrency
summary
Compares concrete implementations: Scala (ZIO, Ox, Kio), Java Loom, Rust Tokio and more by running an easy-racer server (ZIO + GraalVM) and client scenarios. Shows the actual claim that a race’s winner must succeed across ZIO/Kio/loom/Tokio, measures a surprising 10,000 concurrent requests case, proves timeouts, hedging and resource finalizers behave end-to-end, and notes Rust needs ulimit raised and some Python clients fail. Demonstrations compile and run; differences are about ergonomics and scheduler semantics, not magic.
AI-written summary · about
chapters (25)
- 0:00Structured concurrency intro
- 1:29What makes concurrency structured
- 3:34Resource management
- 4:58Timeouts and errors
- 6:23Easy Racer benchmark
- 8:09Five language overview
- 10:15Racing two requests
- 14:08ZIO implementation
- 15:10Java Loom Ox
- 17:18Kio algebraic effects
- 19:20Java Loom direct
- 21:08Rust Tokio
- 24:39Handling failures
- 27:29Racing 10k requests
- 34:12Implementing timeouts
- 38:29Filtering success
- 40:59Racing three requests
- 42:01Hedging requests
- 45:13Resource cleanup
- 47:18Many-to-many execution
- 48:00Canceling CPU tasks
- 48:43Scheduler considerations
- 50:30Abstraction trade-offs
- 51:12Composability outlook
- 51:32Q&A
related talks
55mUnwrapping IO: is it a path that you want to follow?
01h 12mAsynchronous and Concurrent Programming in Scala Part 3
01h 28mAsynchronous and Concurrent Programming in Scala Part 1
01h 53mAsynchronous and Concurrent Programming in Scala Part 2
45mZIO: Next-Generation Effects in Scala
31mReal World ZIO
01h 10mDeclarative Concurrency With ZIO STM
58mBlazing Fast, Pure Effects without Monads
