This is a wiki post (anyone can edit) to collect links to articles and other resources about structured concurrency. It’s probably missing stuff – please add to it!
Implementations
- C: libdill
- Python: Trio, anyio
- Kotlin: Coroutines
- Swift: Venice (based on libdill)
Articles, talks, etc.
Ordered roughly by date:
2016
- Structured concurrency – Martin Sústrik (Note: first known use of the term)
2018
- Timeouts and cancellation for humans – Nathaniel J. Smith
- Notes on structured concurrency, or: Go statement considered harmful – Nathaniel J. Smith (translations: Russian)
- Structured concurrency in high-level languages – Martin Sústrik (note: introduces the concept of “call tree” as opposed to “call stack”)
- Trio: Async concurrency for mere mortals (code and slides; Russian translation) – Nathaniel J. Smith (Note: Talk at PyCon 2018. Contains an overview of how Trio works and why you’d want to use it, for an audience that may or may not know anything about concurrency. Also, the infamous Happy Eyeballs example.)
- Structured concurrency – Roman Elizarov (Note: announces Kotlin’s shift to structured concurrency)
- “Concurrency made easy”: coming soon to a programming language near you – John Belmonte (Note: async/await + structured concurrency + explicit context switch == bliss)
- Update on structured concurrency – Martin Sústrik (note: interesting discussion between different system designers in the comments)
- Two approaches to structured concurrency – Martin Sústrik (note: compares two ways of implementing Happy Eyeballs, in libdill and Trio)
2019
- Short talk at FOSDEM 2019: Structured concurrency – Martin Sústrik
- Graceful Shutdown – Martin Sústrik
- Structured Concurrency - Roman Elizarov, talk at Hydra distributed computing conference (Note: gives background on how Kotlin’s coroutine library arrived at structured concurrency)
- Inside a companion robot: Productive concurrency with Trio - John Belmonte, talk at PyCon JP (Note: highlights how concurrent programming is becoming accessible to non-specialists)
- Structured Concurrency Asynchronous shift in Kotlin - Manuel Vicente Vivo, talk at Codemotion Madrid 2019
2022
- Structured Concurrency - Sebastiaan Koppe, DConf '22 (Note: good overview, considers the existing C++ P2300 concurrency proposal, including how “structured” it is, as well as how it supports “sans-I/O”, and rendering something similar in D language.)