neoq
divedb
neoq | divedb | |
---|---|---|
5 | 3 | |
244 | 5 | |
- | - | |
8.3 | 3.9 | |
19 days ago | 3 months ago | |
Go | Rust | |
MIT License | GNU Affero General Public License v3.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
neoq
- Show HN: Hatchet – Open-source distributed task queue
-
Choose Postgres Queue Technology
I just want to commend OP - if they’re here - for choosing an int64 for job IDs, and MD5 for hashing the payload in Neoq, the job library linked [0] from the article.
Especially given the emphasis on YAGNI, you don’t need a UUID primary key, and all of its problems they bring for B+trees (that thing RDBMS is built on), nor do you need the collision resistance of SHA256 - the odds of you creating a dupe job hash with MD5 are vanishingly small.
As to the actual topic, it’s fine IFF you carefully monitor for accumulating dead tuples, and adjust auto-vacuum for that table as necessary. While not something you’d run into at the start, at a modest scale you may start to see issues. May. You may also opt to switch to Redis or something else before that point anyway.
[0]: https://github.com/acaloiaro/neoq
-
Ask HN: Tell us about your project that's not done yet but you want feedback on
Neoq (https://github.com/acaloiaro/neoq) is a background job processor for Go.
Yes, another one. It began from my desire to have a robust Postgres-backed job processor. What I quickly realized was that the interface in front of the queue was what was really important. This allowed me to add both in-memory and Redis (provided by asynq) backends behind the same interface. Which allows dependent projects to switch between different backends in different settings/durable requirements. E.g. in-memory for testing/development, postgres when you're not running Google-scale jobs, and Redis for all the obvious use cases for a Redis-backed queue.
This allows me to swap out job queue backends without changing a line of job processor code.
I'm familiar with the theory that one shouldn't implement queues on Postgres, and to a large extent, I disagree with those theories. I'm confident you can point out a scenario in which one shouldn't, and I contend that those scenarios are the exception rather than the rule.
-
Examples of using task scheduler with Go?
I created a background processor called Neoq (https://github.com/acaloiaro/neoq) that is likely to interest you.
-
SQL Maxis: Why We Ditched RabbitMQ and Replaced It with a Postgres Queue
This is exactly the thesis behind neoq: https://github.com/acaloiaro/neoq
divedb
-
Ask HN: Tell us about your project that's not done yet but you want feedback on
Working on & off on a scuba diving site which allows you to log dives, sites, photos & sealife.
Currently only South Australian & Victorian dive sites, but probably the most extensive collection of either.
Live website here: https://divedb.net/
Source here: https://github.com/cetra3/divedb
Currently exploring activitypub integration, being able to log dives and have people follow/comment/react to them from the fediverse
-
Thoughts on Svelte(Kit), one year and 3B requests later
I've moved my little hobby website to SvelteKit[1] from react and I am not regretting it.. yet.
The only main frustrations I have are:
- Library support is pretty lousy. You need to fudge things around to get working. I.e, with leaflet and others I have vendored in the libs and redone them.
- Incremental static refresh with svelte kit is not really there. I'd like a web hook or api callback that allows me to refresh certain static pages as I know that changes are made. Right now I'm doing a janky refresh using a file lock notifier & it's a blemish on an otherwise great framework.
- The URL routing in svelte kit is... a little ugly. It's really hard when you have an editor open with 5 `+page.svelte` files. I wish they re-introduced file name routes, rather than folder name routes. It is entirely a personal preference I know, but I have seen a lot of negative things around it.
[1] - https://github.com/cetra3/divedb - deployed at https://divedb.net/
What are some alternatives?
starqueue
vanna - 🤖 Chat with your SQL database 📊. Accurate Text-to-SQL Generation via LLMs using RAG 🔄.
oban - 💎 Robust job processing in Elixir, backed by modern PostgreSQL and SQLite3
wisewriterv3 - From an input, creates a full book, with cover art and sells it on Amazon. Using OpenAI for content, Midjourney for covers, and puppeteer for product input.
tembo - Monorepo for Tembo Operator, Tembo Stacks, and Tembo CLI
SeleneCMS - CMS built as a Symfony Bundle
Asynq - Simple, reliable, and efficient distributed task queue in Go
cuelm - Experiments with CUE on the quest to reimagine devops-ops.
pgtt - PostgreSQL extension to create, manage and use Oracle-style Global Temporary Tables and the others RDBMS
menubar - AI Chat Browser: Fast, Full webapp access to ChatGPT / Claude / Bard / Bing / Llama2! I use this 20 times a day. [Moved to: https://github.com/smol-ai/GodMode]
pgjobq - Atomic low latency job queues running on Postgres
time-bandit - A Cli time management app