Skip to main content

sidekiq_tenant_isolation_namespace

🛡️ Tenant-Isolated Sidekiq Queues with Redis Namespaces

In multi-tenant architectures you can isolate Sidekiq data by using Redis namespaces per tenant. This ensures no cross-tenant data bleed and allows independent scaling and purging.

# Gemfile
gem 'redis-namespace'

# config/initializers/sidekiq.rb
Sidekiq.configure_server do |config|
tenant_id = ENV.fetch('CURRENT_TENANT')
config.redis = { url: ENV['REDIS_URL'], namespace: "sidekiq:#{tenant_id}" }
end

Sidekiq.configure_client do |config|
tenant_id = ENV.fetch('CURRENT_TENANT')
config.redis = { url: ENV['REDIS_URL'], namespace: "sidekiq:#{tenant_id}" }
end