Remix.run Logo
Show HN: Lightweight Task queue on Erlang/OTP, SQLite-backed, no overengineering(github.com)
62 points by ent1c3d 3 days ago | 10 comments

Setting up Kafka or such enterprise oriented software with their clusters or dedicated servers is heavy and bothering enough that most small teams or indie hackers skip it entirely and making compromise to use in-memory queues.

I wanted something in between: a persistent queue that is simple to run (one binary, which makes one sqlite db), gets real fault isolation and crash recovery due to Elixir, easy to inspect (open ezra.db in any SQLite browser and see every task), and requires no new client library - it speaks the Redis Streams wire protocol, so any Redis client in any language just works out of the box.

Very short demo video: [https://www.youtube.com/watch?v=MLYyD3DVWmE]

hankbond an hour ago | parent | next [-]

Maybe this says more about me than your project, but I find the use of implementing this with the Redis Streams wire protocol very interesting and creative. Being able to leverage the surface area of existing client SDKs should really help adoption and reduce what you have to maintain in order to widely integrate.

I agree that in many areas there often is not much in-between "roll yourself in-memory" and "enterprise grade maxed out scalability focus".

bhaney 6 hours ago | parent | prev | next [-]

> This project is maintained by a single author and pull requests are not accepted

Save yourself the headache of people not reading this and just disable pull requests in the repo settings

memset 3 hours ago | parent | prev | next [-]

This is really cool! I built something very similar only I replicated the AWS sqs protocol instead.

https://github.com/poundifdef/smoothmq

neoecos 10 hours ago | parent | prev | next [-]

Oban is really awesome, are you inspired by it?

skrebbel 9 hours ago | parent [-]

Title said “no overengineering” so I doubt it.

xlii 6 hours ago | parent | next [-]

I would argue that Oban isn't overengineered.

If so should we also consider PostgreSQL overengineered?

It's a shame OP decided to use Elixir as base, many ecosystems don't have mature task queues (e.g. for Rust I had to roll my own: simple_queue) so the space IMO would be more welcoming.

On OTP doubt anything can even make a dent in Oban user base.

gamache 5 hours ago | parent | prev [-]

Satisfied former Oban user here. Oban is engineered. Your use-case may be petty, though, like your comment.

abrookewood 10 hours ago | parent | prev | next [-]

Congrats on the launch. Using the Redis protocol was a pretty clever choice. Does it have to run as a stand-alone server?

cpursley 10 hours ago | parent | prev | next [-]

This is nice. For those wanting to stay on Postgres for DAG type of workflows, check out pgmq based PgFlow: https://github.com/agoodway/pgflow

tenwz1 10 hours ago | parent | prev [-]

good