good_job
windmill
good_job | windmill | |
---|---|---|
36 | 87 | |
2,453 | 8,640 | |
- | 3.9% | |
9.3 | 10.0 | |
7 days ago | 2 days ago | |
Ruby | Svelte | |
MIT License | GNU General Public License v3.0 or later |
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.
good_job
-
solid_queue alternatives - Sidekiq and good_job
3 projects | 21 Apr 2024
This is the most direct competitor of good_job in my opinion.
-
Tuning Rails application structure
Once we are done with default gems, should we look into something we usually use? That's jwt because we need session tokens for our API. Next comes our one and only sidekiq. For a long period of time it was the best in town solution for background jobs. Now we could also consider solid_queue or good_job. In development and testing groups we need rspec-rails, factory_bot_rails and ffaker. Dealing with money? Start doing it properly from the beginning! Do not forget to install money-rails. Once everything is added to the Gemfile do not forget to trigger bundle install.
-
Postgres as Queue
In the world of Ruby, GoodJob [0] has been doing a _good job_ so far.
[0] - https://github.com/bensheldon/good_job
-
Choose Postgres Queue Technology
For Rails apps, you can do this using the ActiveJob interface via
https://github.com/bensheldon/good_job
Had it in production for about a quarter and it’s worked well.
-
Pg_later: Asynchronous Queries for Postgres
Idk about pgagent but any table is a resilient queue with the multiple locks available in pg along with some SELECT pg_advisory_lock or SELECT FOR UPDATE queries, and/or LISTEN/NOTIFY.
Several bg job libs are built around native locking functionality
> Relies upon Postgres integrity, session-level Advisory Locks to provide run-once safety and stay within the limits of schema.rb, and LISTEN/NOTIFY to reduce queuing latency.
https://github.com/bensheldon/good_job
> |> lock("FOR UPDATE SKIP LOCKED")
https://github.com/sorentwo/oban/blob/8acfe4dcfb3e55bbf233aa...
-
Noticed Gem and ActionCable
The suggestion from /u/tofus is a good one. If you are already using redis as your ActionCable adapter I would use sidekiq. If not and you're using postgres I would consider https://github.com/bensheldon/good_job
-
Introducing tobox: a transactional outbox framework
Probably worth mentioning that aside from delayed_job there are at least two more modern alternatives backed by the DB: Que and good_job.
-
Sidekiq jobs in ActiveRecord transactions
Good article. Sidekiq is a good, well respected too. However if you are starting out I would recommend not using it, and instead choosing a DB based queue system. We have great success with que, but there are others like good_job.
-
Mike Perham of Sidekiq: “If you build something valuable, charge money for it.”
Sidekiq Pro is great, we're paying for it! 10k a year I think.
But for people who are interested in alternatives, I'd also suggest Good Job (runs on Postgresql).
https://github.com/bensheldon/good_job
-
SQL Maxis: Why We Ditched RabbitMQ and Replaced It with a Postgres Queue
I'm the GoodJob author. Here's the class that is responsible for implementing Postgres's LISTEN/NOTIFY functionality in GoodJob:
https://github.com/bensheldon/good_job/blob/10e9d9b714a668dc...
That's heavily inspired by Rail's Action Cable (websockets) Adapter for Postgres, which is a bit simpler and easier to understand:
https://github.com/rails/rails/blob/be287ac0d5000e667510faba...
Briefly, it spins up a background thread with a dedicated database connection and doings a blocking Postgres LISTEN query returns results, and then it forwards the result to other subscribing objects.
windmill
-
What do you want to watch next? This is why I built GoodWatch.
Data Handling: Utilizes Windmill for data pipelines, with a primary database powered by PostgreSQL. Auxiliary data storage is handled by MongoDB, with Redis for caching to optimize performance
-
Show HN: Strada – Cloud IDE for Connecting SaaS APIs
Look very similar to the script builder portion of https://github.com/windmill-labs/windmill, but not open-source, not self-hostable, and without open-source integrations (https://hub.windmill.dev/)
disclaimer: I'm founder of ^
- Ask HN: Is There a Zapier for APIs?
-
Postgres as Queue
If you need a job queue on Postgres, https://windmill.dev provide an all-integrated developer platform with a Pg queue at its core that support jobs defined in python/typescript/sql
-
A list of SaaS, PaaS and IaaS offerings that have free tiers of interest to devops and infradev
windmill.dev - Windmill is an open-source developer platform to quickly build production-grade multi-step automation and internal apps from minimal Python and Typescript scripts. As a free user, you can create and be a member of at most three non-premium workspaces.
-
Airplane acquired by Airtable and is shutting down
For an alternative to airplane.dev, you can checkout Windmill.
https://github.com/windmill-labs/windmill
"Open-source developer infrastructure for internal tools (APIs, background jobs, workflows and UIs). Self-hostable alternative to Airplane, Pipedream, Superblocks and a simplified Temporal with autogenerated UIsm and custom UIs to trigger workflows and scripts as internal apps.
Scripts are turned into sharable UIs automatically, and can be composed together into flows or used into richer apps built with low-code. Supported script languages supported are: Python, TypeScript, Go, Bash, SQL, and GraphQL. "
If you search HN, you'll find the creator of Windmill comment on comparisons to airplane.dev:
https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...
-
Pipe Dreams: The life and times of Yahoo Pipes
https://windmill.dev is a self-hostable OSS alternative to pipedream
(disclaimer: I'm founder)
-
Looking for an e-commerce multivendor platform for 10million+ products
I'm genuinely curious what server-side stuff on BC you are referring to. That may have been something added after our assessment. The way I'd generally approach something like that for any of the platforms would be using an external low/no code solution to process webhook data. But it would depend heavily on the use case. For a more developer friendly option I've been really impressed by windmill.dev. We use a mix of n8n and windmill for various needs.
- Deno Cron
-
Show HN: Windmill – fastest open-source workflow engine – the how
Yes it goes in that direction, however note that you can already do this in a not too hard way.
Our openflow spec is both open-source and has a full openapi definition: https://github.com/windmill-labs/windmill/blob/main/openflow...
you can use that to generate client sdks in any languages and build your own dag with it. That's what one of our customer did building a reactflow to openflow library: https://github.com/Devessier/reactflow-to-windmill
It's not as good as the decorator way but we move fast and if you still have interest for it we could prioritize it (and ask for feedbacks :))
What are some alternatives?
Sidekiq - Simple, efficient background processing for Ruby
automatisch - The open source Zapier alternative. Build workflow automation without spending time and money.
sidekiq-throttled - Concurrency and rate-limit throttling for Sidekiq
plasmic - Visual builder for React. Build apps, websites, and content. Integrate with your codebase.
Que - A Ruby job queue that uses PostgreSQL's advisory locks for speed and reliability.
budibase - Budibase is an open-source low code platform that helps you build internal tools in minutes 🚀
Delayed::Job - Database based asynchronous priority queue system -- Extracted from Shopify
supabase - The open source Firebase alternative.
Resque - Resque is a Redis-backed Ruby library for creating background jobs, placing them on multiple queues, and processing them later.
pg_jsonschema - PostgreSQL extension providing JSON Schema validation
Sidekiq::Undertaker - Sidekiq::Undertaker allows exploring, reviving or burying dead jobs.
llvm-project - The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.