diff --git a/4.0-Upgrade.md b/4.0-Upgrade.md new file mode 100644 index 00000000..90e9b095 --- /dev/null +++ b/4.0-Upgrade.md @@ -0,0 +1,31 @@ +# Upgrading to Sidekiq 4.0 + +Sidekiq 4.0 contains a completely redesigned core with much higher +performance. See my blog for [an overview of Sidekiq 4's higher performance](http://www.mikeperham.com/2015/10/14/optimizing-sidekiq/). + +To upgrade cleanly: + +* Upgrade to the latest Sidekiq 3.x. + `gem 'sidekiq', '< 4'` + Fix any deprecation warnings you see. Then upgrade to 4.0.x. + +## What's New + +* Sidekiq no longer uses Celluloid. If your application code uses Celluloid, + you will need to pull it in yourself. + +* `redis-namespace` has been removed from Sidekiq's gem dependencies. If + you want to use namespacing ([and I strongly urge you not to](http://www.mikeperham.com/2015/09/24/storing-data-with-redis/)), you'll need to add the gem to your Gemfile: +```ruby +gem 'redis-namespace' +``` + +* **Redis 2.8.0 or greater is required.** Redis 2.8 was released two years + ago and contains **many** useful features which Sidekiq couldn't + leverage until now. Redis 3.0.3 or greater is recommended for large + scale use. + +* Sidekiq requires more Redis connections per process due to a change in + how jobs are fetched from Redis. You must have a minimum of + `concurrency + 2` connections in your pool or Sidekiq will exit. + When in doubt, let Sidekiq size the connection pool for you.