Background Jobs, Caching and Messaging
Redis-backed, threaded, very popular Solid Queue Database-backed (the Rails 8 default) Resque, Delayed Job Active Job Rails abstraction over job backends Redis (redis/redis-client) Caching, pub/sub, rate limiting Solid Cache, Memcached (dalli) Bunny, Sneakers rdkafka-ruby, Karafka
Job design: idempotent jobs, small arguments (pass IDs, not objects), retries with backoff, dead-letter handling, monitoring (Sidekiq Web UI, Mission Control Jobs).
# Sidekiq (Redis-backed)
class ReportJob
include Sidekiq::Job
sidekiq_options retry: 5, queue: "reports"
def perform(user_id, period)
user = User.find(user_id)
ReportGenerator.new(user, period).deliver
end
end
ReportJob.perform_async(42, "monthly")
ReportJob.perform_in(1.hour, 42, "weekly")