Sidekiq Workflows
While Sidekiq Pro’s batches are powerful, only a rather low level API is provided to work with them. Take this example:
https://github.com/mperham/sidekiq/wiki/Really-Complex-Workflows-with-Batches
This is a lot of complex code scattered in various callbacks to enable a straightforward workflow. It is easy making mistakes when writing such code, and it’s also hard to debug. This gem provides an API to define a workflow in a single place, abstracting the Batch API away.
workflow = SidekiqWorkflows.build do
perform(A, 'first param to perform')
perform(B, 'first', 'second').then do
perform(C, 'first', 'second', 'third')
perform([
{worker: D, payload: ['first']},
{worker: E, payload: ['first']}
]).then do
perform(F)
end
end
end
Reminds me a little of promises, which is nice.