Learn a powerful concurrency tool that makes complex coordination easy
Clojure is known for its powerful concurrency tools. It comes with a suite of primitives for managing shared mutable state. But how do you write code with multiple threads that communicate and coordinate with each other? In 2013, the Clojure team introduced core.async, an implementation of Communicating Sequential Processes for Clojure. It is a powerful, easily reasoned abstraction for writing highly concurrent code. It works in both Clojure and ClojureScript.
In this course, we go through the fundamentals with a real example. You'll learn:
- Why you want channels between your workers
- How to identify bottlenecks and eliminate them
- How to deal with deadlock
- A process for analyzing a network of workers
- Techniques for mastering time
- When and how to multitask
- How to break up tasks into smaller subtasks
Clojure core.async
Want this course?
Love it or leave it guarantee
If you don't learn as much from this course as you thought, just ask for a refund within 30 days and I'll give you your money back.
Lessons
Extra Resources

Overwhelmed by the number of functions in Clojure core.async? This reference sheet shows you just the essentials in an easy-to-follow format.