Programming Languages · Cluster

Concurrency Models

Actors, CSP, futures, and structured concurrency.

  1. 01 Mailbox Semantics and Ordering Guarantees in the Actor Model Why an actor mailbox orders messages only per sender pair, what selective receive costs in queue scans, and how an unbounded mailbox becomes the model's characteristic failure. foundational · Jun 15, 2026
  2. 02 Rendezvous and Buffering in CSP-Style Channels How an unbuffered channel makes send and receive a single synchronisation event, what a buffer actually buys, and why a blocked channel turns into a deadlock instead of an error. foundational · Apr 2, 2026
  3. 03 Futures as Write-Once Cells: Polling, Waking, and Cancellation The shared state inside a future, why a poll-based executor needs a waker at all, and how the same cell supports both asynchronous completion and cancellation. foundational · Oct 9, 2026
  4. 04 Happens-Before, Data Races, and the Memory Model Contract What a memory model promises about reordering, why a data race is undefined rather than merely surprising, and how release and acquire pairs carry a happens-before edge. intermediate · Jul 12, 2026
  5. 05 Multiplexing Green Threads onto Kernel Threads How an M:N scheduler maps lightweight tasks onto a fixed pool of OS threads, what work stealing does to locality, and where a blocking call forces the scheduler to compensate. intermediate · Sep 12, 2024
  6. 06 Structured Concurrency and the Task Scope Why a spawned task should not outlive its parent, how a scope joins on exit and cancels siblings on failure, and what the nesting rule buys over detached threads. intermediate · Oct 5, 2026
  7. 07 Cooperative Cancellation and the Cancel-Safety Contract Why asynchronous cancellation needs an explicit protocol, what cancel safety means for an operation interrupted at an await point, and where the guarantee is impossible to provide. intermediate · May 15, 2025
  8. 08 Supervision Trees and the Shape of a Failure Domain How restart strategies bound the blast radius of a failure, what restart intensity actually counts, and why restarting a supervisor can be worse than losing the work it held. advanced · Feb 6, 2025
  9. 09 Software Transactional Memory: Logs, Validation, and Retry How a transaction records its reads and writes in a log, why validation must happen before commit, and what livelock looks like when two long transactions keep colliding. advanced · Dec 3, 2024
  10. 10 Session Types and the Shape of a Channel Protocol How a channel type can encode the order and direction of every message, what duality means for the two ends, and where linear typing stops matching how processes actually behave. advanced · Jun 7, 2025