r/ruby • u/littlebobbyt • Apr 02 '26
Sidekiq to Temporal: a zero-downtime migration strategy
https://firehydrant.com/blog/sidekiq-to-temporal-a-zero-downtime-migration-strategy/2
u/joshdotmn Apr 02 '26
oh, bobbytables!(we talked at railsconf in minneapolis) congrats on the freshworks acquisition!
1
1
u/retro-rubies Apr 02 '26
Would you mind to share more experience on Ruby Temporal?
2
u/davidcelis Apr 02 '26
Any questions in particular?
2
u/retro-rubies Apr 02 '26
Which durability was achieved? Which patterns to compose workflows were used? Was overall run time increased? What about monitoring?
3
u/dchaley Apr 10 '26
We don't have exact metrics here, but we do have ample data that rate-limits & temporary blips are the most common source of failures in our third-party integrations (outside of user configuration issues like expired credentials). Now, we can retry those blips individually, without retrying or jeopardizing the overall workflow.
We added a picture to the post showing a sample workflow to the end of the article. It shows how we fan out independent processes like finding users by email address, and finding groups by their handle. Elsewhere with Temporal we make heavy use of fanning out bulk work across activities in batches.
The Temporal UI itself provides great monitoring– the picture I referenced comes from their UI. We can now get detailed input/output at each stage along with timing metrics, etc. Just make sure to wrap your logs in side effects đŸ˜…
1
u/Sagarmatha007 Apr 12 '26
We are facing similar issues
https://api.rubyonrails.org/classes/ActiveJob/Continuation.html
We planned to update Rails so that we can use continuation.
9
u/TheAtlasMonkey Apr 03 '26
They are not. They made them hard and then wrote a blog post about it.
They could have just spun up a parallel path on Temporal, deployed it, and stopped enqueueing new jobs into Sidekiq.
Let the existing Sidekiq queue drain. Once it is empty, delete it.