Communicating Sequential Processes with core.async

Simplify Asynchronous Programming in Clojure and ClojureScript

4.80 (114 reviews)
Udemy
platform
English
language
Other
category
instructor
Communicating Sequential Processes with core.async
961
students
2 hours
content
Jan 2017
last update
$59.99
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

Description

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. 

Content

Introduction

Important - Download These First - Working Files
What To Expect
About The Author

Channels

Creating Channels
Async Operations On Channels
Buffers
Closing Channels

Threads

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

Backpressure

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

Reviews

Srinivas
March 5, 2023
clojurescript is a great library. core.async is an extremely important creation. You should put more and more good tutorials on clojure and clojurescript. Thank you!
Dhodnett@gmail.com
August 8, 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.
Craeg
November 20, 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únior
October 10, 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!
Edward
August 13, 2019
As suggestion, I think the close caption has some issues with some words. In addition, I think it can add spanish caption.
Mihai-Bogdan
March 31, 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ão
December 4, 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.
Georgi
November 16, 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
deepak
February 8, 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.
Tianxiang
July 17, 2016
Timothy is great at explaining the content--no wonder, since he's the developer for Clojure's core.async!

Charts

Price

Communicating Sequential Processes with core.async - Price chart

Rating

Communicating Sequential Processes with core.async - Ratings chart

Enrollment distribution

Communicating Sequential Processes with core.async - Distribution chart

Related Topics

847476
udemy ID
5/12/2016
course created date
11/20/2019
course indexed date
Bot
course submited by