The goal of core.async is to decouple producers and consumers of information in software, without dictating specific thread or blocking semantics, and without introducing callback hell. Also, to do all of this as a library, portable anywhere you can run a dialect of Clojure.
core.async builds upon the work done with Communicating Sequential Processes, and provides:
- facilities for independent threads of activity, communicating via queue-like channels
- both real threads and shared use of thread pools (in any combination), as well as ClojureScript on JS engines
Stuart Halloway is a founder and President of Cognitect and of Relevance. He is a Clojure committer, and a developer of the Datomic
database. He has spoken at a variety of industry events, including StrangeLoop, Clojure/conj, EuroClojure, ClojureWest, SpeakerConf, QCon, GOTO, OSCON, RailsConf, RubyConf, JavaOne, and NFJS.
Stuart has written a number of books and technical articles. Of these, he is most proud of Programming Clojure.