Show HN: SHARQ – Open Source, Rate-Limited Queuing System
sharq.io
sharq.io
Here is the link to the slides from my PyCon India talk: https://speakerdeck.com/sandeepraju/sharq-an-open-source-rat...
Here is our blog announcement: https://www.plivo.com/blog/sharq-a-flexible-open-source-rate...
How does this compare to celery w/ rate limiting of individual tasks? Celery can be pretty daunting (heavyweight perhaps?) sometimes, having a simpler alternative could be useful. However, I wonder if by the time you need rate limiting of queues, you will probably need additional "heavy" features as well.
I'd love to see a deeper comparison of sharq's usage of redis vs celery's. For example, are there any performance gains by using sharq's lua commands or schemas vs celery's?
There are a few typo's in the features section btw (minmal, seriazlied).
We chose Lua because the queue operations involve modifying more than one Redis data structure and this had to be atomic.
We'll be adding more details on why we built this and how it compares with Celery.. :)
Use semver or something sane to not make your users angry. Pretty please!
Even though SHARQ uses Redis, it has been designed in a way to support at-least-once delivery. If you see the getting started section (http://sharq.io/docs/gettingstarted.html), there is a Finish API which would acknowledge every job dequeued. SHARQ ensures that a job will be requeued back into the queue if it does not receive a Finish request.
When people ask this question, the answer they're looking for is usually not "use Sharq when you need <definition of sharq>". They're looking for concrete examples or situations where one would require that.
If you developed the approach entirely without having seen my talk then feel free to disregard this comment, and please accept my apologies for being presumptuous.
(I built my own Redis-backed distributed queue system long ago because I needed bounded queues with backpressure, which no other libraries seemed to offer: http://github.com/psobot/pressure)
(Granted, the solution presented here is not open sourced.)