-
Notifications
You must be signed in to change notification settings - Fork 1
Drop sidekiq #411
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Drop sidekiq #411
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On your page. But is good_job described somewhere here in this guide?
Regarding having solid queue in the same Postgres Database: what can go wrong in our setups? Most of our apps are not that job-heavy. So I'd go for a default with solid_queue in the same Postgres database.
Regarding ActionCable, I'm not so sure. Is this still LISTEN/NOTIFY? I wouldn't want Websockets connections to dictate my database performance. Would there be a good prioritization setting available for Postgres? Or can the connection pool on Rails side somehow steer who gets how much of the database?
Indeed we never described good_job. We experimented it in a couple of apps, but I think the default solid_queue, combined with mission control as a gui, works also pretty well. Regarding solid_cable: it does not use LISTEN/NOTIFY but it polls a database table on a configurable interval. TL;DR; Given our history, I believe the Rails default should be good to go, but we could still spin up a separate db or a redis instance when needed. |
Thanks for the detailed PR description @coorasse 🙌🏼
"when needed" + when the client approves it in our case. Spinning up a separate DB would mean switching from a shared DB to a dedicated DB, which is quite a price difference as you mentioned.
Fully agree 👍🏼 |
You can just add an additional shared DB, no? And with a dedicated DB-Server on deploio you can add as many DB's as you want. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In favor of dropping sidekiq and recommend solid queue per default configured with a single DB, as we did for some customers project (which I probably shouldn't name in a public repo)
This PR is a starting point to discuss where we want to go.
I'd really like to finally drop redis from our dependencies and dropping sidekiq is the first step in that direction.
We had already pretty good experiences with good_jobs in renuo projects and I used successfully solid_queue in personal ones.
Given that, the next question is: separate database or single database?
I recognize the points from dhh on rails/solid_queue#348 (comment) and I think they are pretty valid. I usually just use separate DBs on sqlite.
But with postgres + heroku/deplo.io the situation is different because hosting costs go up very quickly and we have to also take care of multiple backups.
To me the process should be the following:
Note that also other gems: solid_cache, solid_cable, solid_errors, rails_api_logger, etc... might just go on a separate DB.
In case you go with a single database, we should anyway configure a connection pool for each gem, so that they share the same database, but work on separate transactions.