What Async Promised and What it Delivered — Causality
The async/await saga is a story where each chapter solves the previous chapter's worst problem while introducing new structural costs. The sequential syntax that made async code readable also obscures the thing that matters: which operations actually depend on each other.
April 2026 What Async Promised and What it Delivered Each wave fixed the last wave's worst problem and introduced a new one. OS threads carry overhead: an operating system thread reserves virtual address space for its stack and takes on the order of tens of microseconds to create on modern Linux. (edit Apr 27: The original “roughly a millisecond”, and “megabyte of stack space” conflated virtual reservation with physical memory commitment. Thanks to ibraheemdev, jemfinch, eklitzke on HN) Context switches happen in kernel space and burn CPU cycles, and O(n) readiness polling (select, poll) add u
Explore this link on the map →saved by
related reading
- Reading 15: Promisesweb.mit.edu
- TypeScript Structured Concurrencythecandidstartup.org
- Let futures be futureswithout.boats
- Why choose async/await over threads? | Hacker Newsnews.ycombinator.com
- Async Rust Is A Bad Languagebitbashing.io
- Reading 16: Mutual Exclusionweb.mit.edu
- Why async Rust?without.boats
- What Color is Your Function? - journal.stuffwithstuff.comjournal.stuffwithstuff.com
- Microtasks and event looptr.javascript.info
- Notes on structured concurrency, or: Go statement considered harmful - njs blogvorpus.org
- Futures and promises - Wikipediaen.wikipedia.org
- python - How does asyncio actually work? - Stack Overflowstackoverflow.com