Hey Allen, at Factual we're working on something in that vein: https://github.com/factual/skuld. As you might expect, doing it right takes something a bit more ambitious than just a library.
If you're interested in collaborating, or just have thoughts on how it could be more useful for you, let me know.
Re:Building Clojure Services at Scale
by josephwilk on Friday September 13, 2013 @06:17PM
(#6383542)
Yes, I shed a tear as I had to remove all the futures. Disappointment I could not get multiple thread pools and scheduling with Clojure's concurrency primitives.
I've had great success using Lamina for in-process message queues in lieu of futures, although this does nothing towards making your system distributed.
In process queues are a good abstraction, but that doesn't really protect you in case of your app crashing, which I think is the concern more than being distributed. I may be misunderstanding though.
Edit: I was already a big fan of SoundCloud, very pleased to find out they use Clojure.
When you're getting started with Clojure, it's easy to do everything that needs to happen "later" or "in the background" as a future. Once you go to production, you realize that about half of those futures should have been jobs going into a queue somewhere, with logging and guaranteed delivery, retrying on another machine, if necessary.
I haven't gotten to the point of writing that library, but I probably will, soon.