In the previous chapter, we learned how a framework for Compositional Event Systems (CES) works by building our own framework, which we called respondent. It gave us a great insight into the main abstractions involved in such a piece of software as well as a good overview of
core.async, Clojure's library for asynchronous programming and the foundation of our framework.
Respondent is but a toy framework, however. We paid little attention to cross-cutting concerns such as memory efficiency and exception handling. That is okay as we used it as a vehicle for learning more about handling and composing event systems with
core.async. Additionally, its design is intentionally similar to Reagi's ...