A clojure framework for nonblocking network programming