Concurrent design patterns using core.async
Like its host language, JavaScript, and its parent language, Clojure, ClojureScript has a rich set of concurrency-oriented design patterns that are available to developers by default. In ClojureScript's case, these design patterns are heavily event-driven as an asynchronous event/message queue is the default concurrency model of JavaScript. However, it also has access to CSP-style concurrency software design primitives and options through the use of the powerful core.async
library, which has been available for both Clojure and ClojureScript since mid-2013.
In this section, we'll review what these different concurrency models look like and learn how we can use core.async
to author programs that are easier to reason about at scale.
Before getting started with the examples in this section, you'll want to make sure you have two dependencies in your project.clj
file (at the root directory of our experiment
project).
The first, core.async...