Kestrel versus Resque

(written by lawrence krubner, however indented passages are often quotes). You can contact lawrence at:

Interesting note about these queues, which certainly convinces me to use Kestrel:

There are a lot of things that could be done with either Kestrel or Resque. Because Resque is backed by Redis, you have to remember that all of the messages waiting to be processed have to be able to fit in the RAM of the Redis server, with Kestrel you could queue millions or billions of messages and then start to pull them off.

The biggest difference between the two has to do with how it impacts the architecture of your system.

With Resque, the message includes the name of the class that is supposed to do the work, which makes it more difficult (but not impossible) if you wanted to drastically change how that work is performed.

With Kestrel, messages are pulled from a named queue, which can make it easier for a developer to think about problems in a way that can give them more flexibility (including fairly easily changing the language/platform the work is being performed on).

Many of the benefits that you see with Kestrel often won’t be evident until a high volume of work is being performed by the system.