Communicating Sequential Processes with core.async

Simplify Asynchronous Programming in Clojure and ClojureScript

4.95 (91 reviews)

Communicating Sequential Processes with core.async


2 hours


Jan 2017

Last Update
Regular Price


What you will learn

Once you have completed this course, you will be fully capable of writing your own applications that take advantage of the core.async library.

Learn the basics of core.async


In this Communicating Sequential Processes with core.async training course, expert author Timothy Baldridge will teach you the basics of core.async. This course is designed for users that already have a working knowledge of Clojure and ClojureScript.

You will start by learning how to create channels, then jump into creating and using threads. From there, Timothy will teach you how to combine and split channel streams, work with transducers, and the pipeline abstraction. This video tutorial also provides a quick tour of core.async internals, including how channels are modeled, how alt handlers interact with channels, and how threads interface with channels. Finally, you will learn about non-blocking channel operations and how to put it all together.

Once you have completed this computer based training course, you will be fully capable of writing your own applications that take advantage of the core.async library. 



Important - Download These First - Working Files

What To Expect

About The Author


Creating Channels

Async Operations On Channels


Closing Channels


Creating And Using JVM Threads

Creating And Using Lightweight Threads

Practical Application Of core.async Basics

Interfacing With A HTTP Client

Interfacing With A DB Client

Interfacing With Blocking I/O


Introduction To Backpressure

Tuning Backpressure

Backpressure Pitfalls

Choosing Channels With alts!

Introduction To alts! And alt!

alt! Defaults

Channel Priority With alts

Combining And Splitting Channel Streams

Overview Of The Merge Function

Overview Of mult And tap

Overview Of pub/sub

Draining Channels With reduce And into

A Short Introduction To Transducers

The Problem With Reducer Functions

The Three Parts Of Transducer Functions

Adding Transducer Logic To Channels

The Pipeline Abstraction

Pipeline And Pipeline-Blocking Overview

Pipeline-Async Overview

Parallel Workflows With Transducers And Pipelines

A Quick Tour Of core.async Internals

How Channels Are Modeled

How alt Handlers Interact With Channels

How Go Blocks Interface With Channels

How Threads Interface With Channels

Non-Blocking Channel Operations

An Overview Of offer! And poll!

Putting It All Together

Implementing A Component Based Dataflow Engine

Creating HTTP And Image Processing Components

Wiring It All Together Into A Fully Parallel Asynchronous Data Processing Engine

Wrap Up

Wrap Up And Thank You


Dhodnett@gmail.com8 August 2020

A thorough overview of all aspects of core.async, However, I can confirm that a good foundation in Clojure fundamentals is definitely recommended for the student, to get the most out of this course. The instructor presents the concepts in a well organized sequence of concepts.

Craeg20 November 2019

good, but would like to see some images to help illustrate some of the concepts. Code is king, but a few pictures here and there are gold. Stephen Grider's lessons on udemy are a perfect example of a great balance between code and diagrams.

Júnior10 October 2019

O professor tem um profundo conhecimento de Clojure e da lib core.async. Os vídeos são curtos, porém claramente explicados e com exemplos bons. Recomendo!

Edward13 August 2019

As suggestion, I think the close caption has some issues with some words. In addition, I think it can add spanish caption.

Mihai-Bogdan31 March 2018

The course is very good with direct to the point explications and examples. It's also quite advance and requires some familiarity with Lisp and functional thinking but with a little effort I think can be useful for beginners too. It's amazing that core.async offers a set of tools that can replace with ease stuff that many javascript frameworks like react or angular provide in a more verbose way. It would have been even better if the couse it would have focused also on more real life cases like design patterns for handle an event base feature or things like that.

João4 December 2017

I couldn't find such a well presented information on core/async in other courses/books. The explanation on transducers, despite not being exactly part of the content, way worth 5 star itself. Presenter is very clear and direct.

Georgi16 November 2017

I couldn't find a good tutorial for core.async anywhere. I saw this course and thought I'd give it a shot, and I'm very glad I did. It's very easy to understand and quite enjoyable to watch

deepak8 February 2017

Fantastic course - the instructor is the most enlightened human being on earth :-) I am a clojure newbie, but a fairly experienced programmer (c#, c++ etc) I am right now midway through the course, but not only did I learn a whole bunch of stuff about core.async, but a number of light bulbs went off wrt functional programming, clojure syntax, multi-threaded programming and so on. At the discounted price of $15, this is a steal.

Tianxiang17 July 2016

Timothy is great at explaining the content--no wonder, since he's the developer for Clojure's core.async!


Udemy ID


Course created date


Course Indexed date
Course Submitted by