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")