The author of the first edition of this book, Leonardo Borges, created an open source library that aims to fix the previous issues with Clojure futures. The result of this work is called imminent (see https://github.com/leonardoborges/imminent).
The fundamental difference is that imminent futures are asynchronous by default and provide a number of combinators that allow us to declaratively write our programs without us having to worry about its order of execution.
The best way to demonstrate how the library works is to rewrite the previous movies example in it. We will do this in two broad steps.
First, we will individually examine the bits of imminent's API that will be part of our final solution. Then, we'll put it all together in a working application.
Let's start by creating a new project:
lein new...