lago icon indicating copy to clipboard operation
lago copied to clipboard

[FEAT]: Ability to replace Sidekiq to Shoryuken Worker

Open maciejstromich opened this issue 3 years ago • 3 comments

Is your feature request related to a problem? Please describe. Because Sidekiq is a Redis based worker and in AWS environments running a Redis service can be quite expensive I would propose to give ability to choose a different worker in an configurable-Interface-way so the backward compatibility is preserved. This would give possibility to use Shoryuken as a drop in replacement.

Shoryuken uses SQS as a queue which is cheaper/more scalable for larger installations. For local dev/on-prem installations one can use e.g. Elasticmq as a broker (avaiable as both standalone and docker image installation with in-memory/persistent storage)

maciejstromich avatar Jun 23 '22 10:06 maciejstromich

Hey @maciejstromich,

Thanks for your suggestion.

We will discuss it internally and come back to you soon!

lovrocolic avatar Jun 23 '22 12:06 lovrocolic

Hey @maciejstromich,

We are following a planned roadmap for the next 6 weeks, but we consider improving this on the tech side afterwards.

Hope this works for you!

Regards

lovrocolic avatar Jun 24 '22 08:06 lovrocolic

More generally it could be nice to support any ActiveJob adapter.

From what I can see this should be possible with a minimum of changes as the jobs I have looked at only use ActiveJob features and nothing specific to Sidekick, so introducing an ENV var for job backend and then conditionally loading the relevant gems based on the ENV var should work.

We are fond of Que or GoodJob which use Postgres as the backing store, allowing transactional job enqueuing without any extra work.

prognostikos avatar Jun 29 '22 06:06 prognostikos

Agree. Depending where we deploy, we may want to use the native queue infrastructure like Amazon SQS, or Google Cloud Tasks, etc. The same goes for the clock worker, where we would want to use Cloud Scheduler for example. It's great that you already separated that module so we can drop in our own.

Can I ask, is the Redis dependency only used for the message queue, or is it also used as a cache/database?

brettwillis avatar Feb 21 '23 02:02 brettwillis

Logged here: https://getlago.canny.io/feature-requests/p/ability-to-replace-sidekiq-with-shoryuken-worker

mathieu-lago avatar Apr 30 '23 17:04 mathieu-lago