Skip to content

Commercial FAQ

Mike Perham edited this page Apr 12, 2024 · 122 revisions

What are Sidekiq Pro and Sidekiq Enterprise?

Sidekiq Pro and Sidekiq Enterprise are extensions to Sidekiq which add more functionality and provide additional support options for customers.

Is there a trial version?

We do not have pre-sales demos or free trials. Sidekiq is free, well-known and widely available. If Sidekiq is working for you, you can purchase one month of Pro or Enterprise and try it in development and/or production. If you are not happy with the result, please write to support@contribsys.com and we will refund your month.

There are several thousand customers using Sidekiq Pro or Enterprise across the globe, including most of the "big" Ruby users. The largest scale I'm aware of is one customer running a peak of 250,000 jobs per second or 20 billion jobs per day across ~100 Redis shards.

Can I get a discount?

For Sidekiq Pro, there are no discounts or deals. For Sidekiq Enterprise, discounts are available for larger volumes and payment periods. The Sidekiq Enterprise purchase page will show you those discounts as you select larger options.

What is the license?

See COMM-LICENSE.txt in the root of the Sidekiq repo.

How does Pro licensing work?

Every organization running Sidekiq Pro on its own servers must purchase a subscription. There's no limit to the number of servers or environments used by that organization. Your subscription will automatically renew every year.

How does Enterprise licensing work?

Every organization running Sidekiq Enterprise on its own servers must purchase a subscription. The price is based on the number of worker threads running in production environment in processes using the Sidekiq Pro or Sidekiq Enterprise gems. You can use Sidekiq Enterprise with any number of apps and processes and machines as long as their total worker thread count in production is <= the licensed amount. Development and staging environments are free and unlimited. Your subscription will automatically renew every term (annual, quarterly, monthly).

Any Sidekiq Enterprise process with RAILS_ENV=production or sidekiq -e production will count on your license.

For autoscaling and one-off processing tasks, you are allowed to double your licensed count for up to one hour per day, e.g. to handle a temporary spike in traffic.

If you wish to expand your Sidekiq Enterprise thread count beyond your current license, email support@contribsys.com so we can update your account and let you know how we will bill you.

An unlimited license (unlimited usage for your organization) for Sidekiq Enterprise is available for $74,500/yr. Please email support@contribsys.com to purchase.

How do I determine my Sidekiq Enterprise license size?

As of Sidekiq v6.2.0, you can also see the total concurrency for an application on the Busy page:

threads count location

Alternatively you can find your current thread usage by running this Ruby code in the production console for each app which uses or will use Sidekiq Enterprise.

app1 $ bundle exec rails console
> require 'sidekiq/api'; Sidekiq::ProcessSet.new.sum{|pr| pr["concurrency"]}
=> 75
app2 $ bundle exec rails console
> require 'sidekiq/api'; Sidekiq::ProcessSet.new.sum{|pr| pr["concurrency"]}
=> 60

That's a total of 135 threads for two apps.

What happens if my subscription lapses?

We email you a reminder one week before an annual subscription renewal so you can update your card.

If we cannot charge your card, we will email you and try three more times over a week. If it still fails, your subscription will be cancelled. You'll lose access to the gem server and priority support, you won't get any more updates or bug fixes and bundle install won't work anymore.

Please note that pricing can change. Once you purchase a Stripe subscription, you get that price for at least one year as long as you continue to pay on time. If your subscription expires for non-payment, you will lose that pricing and need to repurchase at current pricing. If you wish to retain your old credentials, please purchase and then send an email to request retaining the old credentials.

How do I buy Sidekiq Enterprise?

You can get a quote on the Sidekiq Enterprising purchase page and purchase in seconds.

Can I upgrade from Sidekiq Pro?

Yes:

  1. Purchase a new Sidekiq Enterprise subscription at https://billing.contribsys.com/sent/new.cgi.
  2. Migrate your Bundler configuration and Gemfile according to the emailed instructions.
  3. Email support@contribsys.com, I will cancel your Pro subscription and prorate your account.

Sidekiq Pro is included with Sidekiq Enterprise so your application code should not need to change at all.

Any applications which access the gems via an Enterprise URL count in the Enterprise subscription thread count. If you wish to continue using Sidekiq Pro in some applications without counting against your Enterprise thread count, you must maintain a separate Pro subscription and the Sidekiq Pro processes must use a separate Redis database.

Can I distribute Sidekiq Pro or Enterprise to my customers?

This is a common requirement for "on-site installs" or "appliances" sold to large corporations.

The default commercial license is only appropriate for SaaS usage as it does not allow distribution. Sidekiq Pro and Enterprise have an Appliance license option which does allow you to distribute them. The Appliance license is $10,995/yr for Pro and $24,995/yr for Enterprise. It allows you to distribute the Pro or Enterprise gems as part of your application and each of your customers to run Sidekiq Pro or Enterprise with up to 100 threads as part of your application only. Email support@contribsys.com to purchase.

Can you transfer a license?

Licenses are not transferrable to another company. You can transfer the license from a user-specific email to a group email address (e.g. john_smith@example.com -> tech@example.com) but only for the same domain by changing the email in your Contributed Systems billing portal. It is strongly recommended that you buy the license using a group email address so the license is not attached to any one employee's email address.

What does the license require me to do?

Your purchase gets you unique access credentials for downloading the Pro and/or Enterprise gems. The license agreement requires you to keep these access credentials private. If we find your access credentials are ever publicized:

  1. We'll send you a warning email with details.
  2. Rotate your credentials. The old credentials will stop working immediately.
  3. Remove the content and reply to the email so I know the content has been removed.

If your credentials are publicized a second time, we reserve the right to permanently remove access (but won't unless it's really egregious - sloppy contractors happen). If you don't respond within 24 hours, the account will be locked until you email us.

You can rotate your credentials at any time with the Rotate Credentials page.

Do I have to share the credentials with all of my developers?

In general, yes. The credentials are required to download the gems and your developers will need the gems to use the commercial features. You can use dotenv to load the unencrypted credentials in .env into each process, or you can use blackbox or chamber to manage encrypted secrets. But the result should always be the same: set an environment variable for Bundler to use when it needs to access the Contributed Systems gem server.

You can rotate your own credentials using our Rotate Credentials page.

How do I debug a 401 Access Denied error?

  1. Check the account email's Spam/Junk folder for any billing or payment emails. If your subscription was cancelled, you will need to purchase a new subscription at billing.contribsys.com.
  2. Verify the gem server is up with status.sidekiq.org.
  3. Upgrade Bundler. Versions before 2.3.x are buggy with the gem server.
  4. Use bundle config and DEBUG=1 bundle to verify your credentials are available in the current environment and that Bundler is using them with Contributed Systems' gem server.
 % bundle config
gems.contribsys.com
Set for the current user (/Users/mperham/.bundle/config): "1234abcd:[REDACTED]"
% DEBUG=1 bundle up
Running `bundle update` with bundler 2.2.32
Found changes from the lockfile, re-resolving dependencies because bundler is unlocking HTTP GET https://1234abcd@gems.contribsys.com/versions
HTTP 206 Partial Content https://1234abcd@gems.contribsys.com/versions
HTTP GET https://1234abcd@gems.contribsys.com/versions
HTTP 200 OK https://1234abcd@gems.contribsys.com/versions
Fetching gem metadata from https://gems.contribsys.com/
Looking up gems ["sidekiq-pro"]

Verify curl can use your username:password credentials:

# Sidekiq Pro customers
% curl -I https://username:password@gems.contribsys.com/gems/sidekiq-pro-5.5.0.gem
HTTP/1.1 200 OK

# Sidekiq Enterprise customers
% curl -I https://username:password@enterprise.contribsys.com/gems/sidekiq-ent-2.2.3.gem
% curl -I https://username:password@enterprise.contribsys.com/gems/sidekiq-pro-5.5.0.gem
HTTP/1.1 200 OK

How do I upgrade Sidekiq Pro or Sidekiq Enterprise?

Make sure you've locked Sidekiq to a specific major version in your Gemfile:

gem "sidekiq", "~>7.2" # Version locked to <8, >=7.2.0
source "hostname" do
  gem "sidekiq-pro"
  gem "sidekiq-ent"
end

Now ask Bundler to upgrade the commercial gem (it will also upgrade all dependencies "underneath" the gem):

bundle up sidekiq-pro # Sidekiq Pro
bundle up sidekiq-ent # Sidekiq Enterprise

Warning: Running only bundle up sidekiq can lead to errors due to version mismatch. If your subscription has lapsed, you will get a 401 Error from Bundler.

Can I use Sidekiq Pro or Enterprise in an Open Source app?

That's tricky. First you need to determine your Open Source requirements:

  • Do you just want support? You can purchase a license to ensure private email support without using any features. This can work well if you want to use 3rd party open source Sidekiq extensions (in order to keep everything open source) but want help debugging integration or runtime issues.
  • Is your app Open Source so anyone can fork and run the app themselves? If so, everyone would need to purchase their own license and that's generally not going to work. Not recommended.
  • Is your app Open Source so anyone can see the source but the app is really only maintained and run by one organization? If so, you can make it work but it can be tricky, especially if you want to have public CI.

In your initializer, you'd conditionally activate any commercial features:

Sidekiq.configure_server do |config|
  config.reliable! if defined?(Sidekiq::Pro)
end

In your Gemfile you can have an optional group:

group :commercial, optional: true do
  source ... do
    gem "sidekiq-pro"
  end
end

Then bundle install --with commercial. Some CI services support encrypted secrets which are available to each build, perfect for this usecase.

Can I get a refund?

Yes, up to two weeks after purchase. Let us know the reason and maybe we can help but either way it's not a problem. Email support@contribsys.com.

How do I update my info?

For the vast majority of customers, you will use the Contributed Systems billing portal.

If you purchased Sidekiq Enterprise years ago via Quickbooks invoice, each annual invoice is paid separately so you'll enter your CC info each time. Email support@contribsys.com if you need to update the email or other info.

Can I request a change to the license terms?

Sidekiq Pro is sold as is, no change to terms. Sidekiq Enterprise customers purchasing 400 threads or more can ask for changes to the terms and conditions. Email your concerns and we can negotiate something.

Can I pay via invoice and purchase order?

Sidekiq Pro is credit card only, no exceptions.

See the purchase page for Sidekiq Enterprise billing options. An annual emailed invoice is available for licenses 400 threads and up. Connect with Contributed Systems on bill.com or Coupa for easy ACH payment. Customers are limited to five separate invoices per year. Beyond five licenses, the unlimited license is required.

Disputing a Charge

Customers occasionally dispute a charge, especially if on an annual subscription; team turnover can mean that an infrequent charge is not recognized. I never fight disputes; the charge will be refunded and the subscription cancelled immediately.

If a customer wishes to regain access they must acknowledge their error in disputing the charge and pay any fees associated with the dispute.

Purchasing via Resellers

Resellers are welcome to purchase Sidekiq Pro or Sidekiq Enterprise for their customers. They must provide a distinct email address for each customer and be able to pay via credit card or invoice with no manual process on our part. We will not allow resellers (or any customers) who require annual handholding or manual processing for payment.

Can you fill out my security or compliance documentation?

Not for Sidekiq Pro or a base Sidekiq Enterprise license. If you wish for us to fill out any paperwork, you must have at least a 400 thread Enterprise license.

Anonymous Purchase

We reserve the right to refuse sales to any anonymous email accounts or generic email providers (e.g. someguy@gmail.com). Use an email address domain for an existing organization (someguy@acme-widgets.com).

Ethics, Privacy and Information Usage

Contributed Systems only collects enough customer information to fill out a standard invoice for billing purposes. Customer information is never shared or sold to anyone.

The Sidekiq software runs on your servers. Contributed Systems never has access to any private user data. Sidekiq Enterprise does phone home daily with aggregate usage numbers for billing purposes, per Section 11 of the COMM-LICENSE.

Contact Info

Contributed Systems LLC
PO Box 247
Lake Oswego, OR 97034

All billing/support inquiries: info@contribsys.com
Federal EIN: 47-1292117

Please find our W-9 available here: https://www.icloud.com/iclouddrive/0f2mjE0qFfJR_f7OGvop1coHw#contribsys-w9

Clone this wiki locally