Explore core.async, a powerful library for decoupling producers and consumers of information in software without relying on callbacks. Dive into the design and capabilities of core.async, including creating unbuffered and buffered channels, using threaded put and take operations, implementing go blocks for asynchronous programming without threads, and leveraging IOC put and take operations. Learn how to simultaneously wait for multiple operations using alts! and alts!!, and discover how timeouts can be treated as channels. Apply these primitives to build substantial working programs, culminating in the development of complex UI applications in the browser without callbacks. Gain insights into Communicating Sequential Processes (CSP), closure evaluation, web application architecture, and various concurrency models through practical examples and demonstrations.
Core.async - Concurrency without Callbacks - Philly ETE 2015