I cloned Beanstalkd with Clojure

Sat 24 September 2011
  • ANN tags:
  • beanstalkd
  • clojure
  • opensource
  • project published: true comments: true

I just cloned Beanstalkd with clojure and you can find this project on github. It's a light weight task queue that "producers" could put tasks in and "workers" are blocked to reserve them and process them. It will help you to split expensive operations (sending email, etc) to background.

The features:

  • Almost compatible with Beanstalkd protocol
  • Full support on Beanstalkd verbs: put/reserve/release/bury/kick
  • Persistence with binary write-ahead logs
  • Simple JMX monitoring

The networking layer is based on @ztellman's libraries, aleph, lamina and gloss. And I also received great help from him on implementing the protocol with gloss.

This is not my first clojure project but the largest one. I add marginalia in the dev-dependencies, you can generate well formatted code and docs with `lein marg`.

By the way, this project is not well tested. I'm still working on it to find potential issues and to fix them. Do not use it on any production environment before you have carefully gone through the code base. I just made this announcement here to let people know this project if they are interested in this topic.

And always, Any fork/contribution is welcomed.