asynchronous communication for clojure