Skip to content

Commit

Permalink
Merge pull request #1654 from ably/edu-1158-update-payg-limits
Browse files Browse the repository at this point in the history
[EDU-1158] - Update for PAYG changes
  • Loading branch information
m-hulbert authored Dec 5, 2022
2 parents 3ad0067 + 5af66ee commit 0a63ec4
Showing 1 changed file with 44 additions and 44 deletions.
88 changes: 44 additions & 44 deletions content/general/limits.textile
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,11 @@ jump_to:
- Control API limits#control-api
---

Limits are applied to all accounts in order to prevent any impact on service caused by deliberate or accidental abuse. Limits vary depending on the "package":https://ably.com/pricing associated with your account and upgrading to a package with additional message, connection or channel allowance increases any related limits. Enterprise package limits are customizable.
Certain limits are applied in order to prevent any impact on service caused by accidental or deliberate abuse. Limits vary depending on the "package":https://ably.com/pricing associated with your account. You can view the limits for your package in the "account dashboard":https://ably.com/accounts/any/package_limits.

You can view the limits for your package in the "account dashboard":https://ably.com/accounts/any/package_limits or use the "calculator":https://ably.com/pricing/full-calculator to see how limits change based on connection, channel and message quotas.
PAYG accounts have high default limits, but far higher limits can be set if needed. All Committed Use package limits are customizable.

"Contact us":http://ably.com/support if your application requires limits beyond what's currently set for your package.

h2(#overview). Overview

Expand All @@ -46,11 +48,11 @@ Instantaneous rate limits relate to the frequency of a given operation at a mome

h4(#local-rates). Local instantaneous rate limits

Local instantaneous rate limits reject operations in excess of their hard limit and return an error code. For example, the limit on a self-service package for the message publish rate on an individual channel is 50 messages per second. Any message publish attempts in excess of the 50 messages per second will be rejected and an error code will be returned to the publisher.
Local instantaneous rate limits reject operations in excess of their hard limit and return an error code. For example, the default limit on a PAYG package for the message publish rate on an individual channel is 2,400 messages per second (higher limits are available). Any message publish attempts in excess of the 2,400 messages per second will be rejected and an error code will be returned to the publisher.

h4(#global-rates). Global instantaneous rate limits

Global instantaneous rate limits apply rate suppression to operations that exceed their hard limits. Rate suppression is calculated on a rolling probabilistic basis. For example, the limit on a self-service package for publishing messages into a queue is 200 messages per second. If a queue rule is attempting to publish 400 messages per second into the queue, each message will have a 50% chance of being rejected. The suppression probability is continuously updated based on the publishing rate.
Global instantaneous rate limits apply rate suppression to operations that exceed their hard limits. Rate suppression is calculated on a rolling probabilistic basis. For example, the default limit on a PAYG package for publishing messages into a queue is 200 messages per second. If a queue rule is attempting to publish 400 messages per second into the queue, each message will have a 50% chance of being rejected. The suppression probability is continuously updated based on the publishing rate.

Global instantaneous rate limits only have a hard limit. Once the hard limit rate has been exceeded then message suppression will occur. As soon as the rate drops below the hard limit threshold, the suppression probability will decrease to zero.

Expand All @@ -70,20 +72,22 @@ An example of a quantity-based limit is the one for peak connections. When the h

h2(#quota). Quota limits

Quotas are based on the account "package":https://ably.com/pricing/calculator that you are on. Quotas specify the number of peak channels, peak connections, messages and bandwidth that you expect to consume each month. Monthly quotas can be configured for self-service accounts. Quotas for free accounts are fixed. Enterprise account quotas are set in a way that ensures that limits are not reached during normal operations for an account.
Quotas are based on the account "package":https://ably.com/pricing that you are on. Quotas specify the number of peak channels, peak connections, messages and bandwidth that you expect to consume each month. Quotas for free accounts are fixed. Committed Use account quotas are set in a way that ensures that limits are not reached during normal operations for an account.

The quotas for an account can be considered a soft limit, with no restrictions coming into effect until the hard limit is reached. Free accounts have a small buffer between the soft and hard limits. Self-service accounts have a considerably larger buffer between soft and hard limits, however any usage over the soft limit and up to the hard limit is charged as overages.
The quotas for an account can be considered a soft limit, with no restrictions coming into effect until the hard limit is reached. Free accounts have a small buffer between the soft and hard limits.

|_/2=. Limit |_\2=. Free |_\2=. Self-service |_\2=. Business (legacy) |_\2=. Enterprise |
|_. Soft |_. Hard |_. Soft |_. Hard |_. Soft |_. Hard |_. Soft |_. Hard |
| "Peak connections":#peak-connections | 200 | 240 | Quota | 2.5x quota | Quota | 5x quota |\2. Custom |
| "Peak channels":#peak-channels | 200 | 240 | Quota | 2.5x quota | Quota | 5x quota |\2. Custom |
| "Total messages":#messages | 6,000,000 | 7,200,000 | Quota | 2.5x quota | Quota | 5x quota |\2. Custom |
| "Messages":#messages (per hour) | 84,000 | 100,000 | Quota / 72 | 2.5x quota / 72 | Quota / 72 | 5x quota / 72 |\2. Custom |
| "Message rate":#messages (per second) | - | 70 | - | Hourly * 2.5 | - | Hourly * 2.5 |\2. Custom |
| "Total bandwidth":#bandwidth (GiB) | 11.5 | 13.8 | Quota | 2.5x quota | Quota | 5x quota |\2. Custom |
| "Bandwidth":#bandwidth (per hour in MiB) | 160 | 190 | Quota / 72 | 2.5x quota / 72 | Quota / 72 | 5x quota / 72 |\2. Custom |
| "Bandwidth rate":#bandwidth (per second in KiB ) | - | 132 | - | Hourly * 2.5 | - | Hourly * 2.5 |\2. Custom |
|_/2=. Limit |_\2=. Free |_\2=. PAYG |_\2=. Committed Use |
|_. Soft |_. Hard |_. Soft |_. Hard |_. Soft |_. Hard |
| "Peak connections":#peak-connections | 200 | 240 | 10,000 | 25,000 |\2. Custom >= PAYG |
| "Peak channels":#peak-channels | 200 | 240 | 10,000 | 25,000 |\2. Custom >= PAYG |
| "Total monthly messages":#messages | 6,000,000 | 7,200,000 | No limit | No limit |\2. No limit |
| "Messages":#messages (per hour) | 84,000 | 100,000 | 1,400,000 | 3,500,000 |\2. Custom >= PAYG |
| "Message rate":#messages (per second) | - | 70 | - | 2,400 |\2. Custom >= PAYG |
| "Total bandwidth":#bandwidth (GiB) | 11.5 | 13.8 | 190 | 475 |\2. Custom >= PAYG |
| "Bandwidth":#bandwidth (per hour in MiB) | 160 | 190 | 2.6 | 6.6 |\2. Custom >= PAYG |
| "Bandwidth rate":#bandwidth (per second in KiB ) | - | 132 | - | 4,600 |\2. Custom >= PAYG |

Limits on any paid account can be increased - "contact us":http://ably.com/support to request a higher limit.

h3(#peak-connections). Peak connections

Expand Down Expand Up @@ -123,13 +127,9 @@ There are three types of peak channel limit notifications you may receive:

h3(#messages). Messages

Message counts and rates are the number of "messages":/glossary#messages published and received in your account.
Message counts and rates are the number of "messages":/glossary#messages published and received in your account. In paid accounts, there are only limits to the amount of messages that can be sent hourly and per-second.

* The total messages for a month are set based on your quota.
* The hourly message limit is calculated using the total message limit divided by 72.
* The message rate is calculated using the hourly limit multiplied by 2.5, divided into seconds. For example, if the hourly limit is 208,000 then the message rate will be @(208,000 x 2.5) / 60 / 60 = 145@.

If the message rate is exceeded, a "global instantaneous rate limit":#global-rates will be applied to message delivery and publishing. The hourly and total message limits are "time-based":#time. If the hard limit is hit for those, message delivery and publishing will be blocked until the following hour or month.
If the message rate is exceeded, a "global instantaneous rate limit":#global-rates will be applied to message delivery and publishing. The hourly message limits are "time-based":#time. If the hard limit is hit for those, message delivery and publishing will be blocked until the following hour.

h4(#message-notifications). Message notifications

Expand Down Expand Up @@ -188,11 +188,11 @@ There are three types of monthly bandwidth limit notifications you may receive:
* @messages.monthly.soft.data@ - when your pre-paid quota has been exceeded.
* @messages.monthly.hard.data@ - when the hard limit on the account has been exceeded.

h2(#app-limits). App limits
h2(#app-limits). Application limits

App limits relate to the quantity of resources that can be created per account.
Application limits relate to the quantity of resources that can be created per account.

|_=. Limit |_=. Free |_=. Self-service |_=. Business (legacy) |_=. Enterprise |
|_=. Limit |_=. Free |_=. PAYG |_=. Committed Use |
| "Number of apps":#apps (per account) |\4=. 100 |
| "Number of API keys":#api-keys (per account) |\4=. 100 |
| "Number of rules":#rules (per account) |\4=. 100 |
Expand Down Expand Up @@ -226,11 +226,11 @@ h2(#token). Token request limits

Token request limits relate to the rate and size of "token requests":/core-features/authentication#token-authentication made to Ably.

|_/2=. Limit |_\2=. Free |_\2=. Self-service |_\2=. Business (legacy) |_\2=. Enterprise |
|_. Soft |_. Hard |_. Soft |_. Hard |_. Soft |_. Hard |_. Soft |_. Hard |
| "Token requests":#token-rate (per hour) | 72,000 | 86,000 | 0.4 * hard limit | "Connection rate":#connection-rate per hour / 1000 | 0.2 * hard limit | "Connection rate":#connection-rate per hour / 1000 |\2. Custom |
| "Token request rate":#token-rate (per second) | - | 50 | - | 0.4 * hourly limit | - | 0.2 * hourly limit |\2. Custom |
| "Token request size":#token-size |\8=. 128KiB |
|_/2=. Limit |_\2=. Free |_\2=. PAYG |_\2=. Committed Use |
|_. Soft |_. Hard |_. Soft |_. Hard |_. Soft |_. Hard |
| "Token requests":#token-rate (per hour) | 72,000 | 86,000 | 120,000 | 300,000 |\2. Custom >= PAYG |
| "Token request rate":#token-rate (per second) | - | 50 | - | 208 |\2. Custom >= PAYG |
| "Token request size":#token-size |\6=. 128KiB |

h3(#token-rate). Token request rate

Expand Down Expand Up @@ -265,8 +265,8 @@ h2(#connection). Connection limits

Connection limits relate to the "realtime connections":/realtime/connection to Ably from your account.

|_=. Limit |_=. Free |_=. Self-service |_=. Business (legacy) |_=. Enterprise |
| "Connection rate":#connection-rate (per second) | 20 | 50 minimum | 50 minimum | Custom |
|_=. Limit |_=. Free |_=. PAYG |_=. Business (legacy) |_=. Committed Use |
| "Connection rate":#connection-rate (per second) | 20 | 85 | 50 minimum | Custom |
| "Number of channels":#connection-channels (per connection) | 50 | 200 | 200 | Custom |
| "Outbound message rate":#outbound-message (per second) | 15 | 50 | 50 | Custom |
| "Inbound message rate":#inbound-message (per second) | 15 | 50 | 50 | Custom |
Expand All @@ -276,7 +276,7 @@ h3(#connection-rate). Connection rate

The connection rate limit is the maximum rate at which new "realtime connections":/realtime/connection can be made to Ably.

The limit is calculated based on the hard limit for "peak connections":#peak-connections, with a minimum value of 50 per second for self-service accounts.
The limit is calculated based on the hard limit for "peak connections":#peak-connections.

If the connection rate is exceeded, a "global instantaneous rate limit":#global-rates will be applied to new connection attempts.

Expand Down Expand Up @@ -308,10 +308,10 @@ h2(#channel). Channel limits

Channel limits relate to the number, rate and membership of "channels":/glossary#channels on your account.

|_=. Limit |_=. Free |_=. Self-service |_=. Business (legacy) |_=. Enterprise |
|_=. Limit |_=. Free |_=. PAYG |_=. Business (legacy) |_=. Committed Use |
| "Number of subscribers":#subscribers (per channel) |\4=. Unlimited |
| "Presence members":#presence-members (per channel) | 50 | 200 | 200 | Custom |
| "Channel creation rate":#channel-create (per second) | 20 | 50 minimum | 50 minimum | Custom |
| "Channel creation rate":#channel-create (per second) | 20 | 85 | 50 minimum | Custom |
| "Message publish rate":#message-publish-rate (per second) | 15 | 50 | 50 | Custom |

h3(#subscribers). Number of subscribers
Expand All @@ -337,7 +337,7 @@ h3(#channel-create). Channel creation rate

The channel creation rate limit is the maximum rate at which channels can be created across your Ably account.

The limit is calculated based on the hard limit for "peak channels":#peak-channels, with a minimum value of 50 per second for self-service accounts.
The limit is calculated based on the hard limit for "peak channels":#peak-channels.

If the channel creation rate is exceeded, a "global instantaneous rate limit":#global-rates will be applied to channel creation.

Expand All @@ -351,7 +351,7 @@ h2(#message). Message limits

Message limits relate to the number, rate and bandwidth of "messages":/realtime/messages on your account.

|_=. Limit |_=. Free |_=. Self-service |_=. Business (legacy) |_=. Enterprise |
|_=. Limit |_=. Free |_=. PAYG |_=. Business (legacy) |_=. Committed Use |
| "Message size":#message-size (KiB) | 16 | 64 | 64 | 256 |
| "History TTL":#history-ttl (hours) | 24 | 72 | 72 | Custom |

Expand All @@ -369,7 +369,7 @@ h2(#queues). Queue limits

Queue limits relate to the number, length and rates of "queues":/glossary#queues.

|_=. Limit |_=. Free |_=. Self-service |_=. Business (legacy) |_=. Enterprise |
|_=. Limit |_=. Free |_=. PAYG |_=. Business (legacy) |_=. Committed Use |
| "Number of queues":#queue-numbers (per account) | 5 | 50 | 50 | Custom |
| "Queue length":#queue-length (per account) | 10,000 | 50,000 | 50,000 | Custom |
| "Queue publish rate":#queue-publish (per second) | 100 | 200 | 200 | Custom |
Expand Down Expand Up @@ -399,10 +399,10 @@ h2(#integration). Integration limits

Integration limits relate to the rate of "webhooks":/general/webhooks and the rate of messages streamed through "Firehose":/general/firehose.

|_=. Limit |_=. Free |_=. Self-service |_=. Business (legacy) |_=. Enterprise |
|_=. Limit |_=. Free |_=. PAYG |_=. Business (legacy) |_=. Committed Use |
| "Webhook batch size":#webhook-batch | 50 | 100 | 100 | Custom |
| "Webhook batch concurrency":#webhook-concurrency | 1 | 1 | 1 | Custom |
| "Firehose external queues message rate":#firehose-messages (per second) | 50 | - | - | Custom |
| "Firehose external queues message rate":#firehose-messages (per second) | 50 | 50 | - | Custom |
| "Function invocation rate":#function-invocations (per second) | 15 | 30 | 30 | Custom |
| "Function concurrency":#concurrent-functions | 30 | 60 | 60 | Custom |

Expand Down Expand Up @@ -434,10 +434,10 @@ h2(#api). API request limits

API request limits are the maximum number of REST API requests that can be made to Ably. This excludes "token requests":#token.

|_/2=. Limit |_\2=. Free |_\2=. Self-service |_\2=. Business (legacy) |_\2=. Enterprise |
|_/2=. Limit |_\2=. Free |_\2=. PAYG |_\2=. Business (legacy) |_\2=. Committed Use |
|_. Soft |_. Hard |_. Soft |_. Hard |_. Soft |_. Hard |_. Soft |_. Hard |
| API requests (per hour) | 8,000 | 10,000 | 0.1 * hourly message soft limit | 0.1 * hourly message hard limit| 0.1 * hourly message soft limit | 0.1 * hourly message hard limit |\2. Custom |
| API request rate (per second) | - | 20 | - | 50 minimum | - | 50 minimum |\2. Custom |
| API requests (per hour) | 8,000 | 10,000 | 139,000 | 350,000 | 0.1 * hourly message soft limit | 0.1 * hourly message hard limit |\2. Custom |
| API request rate (per second) | - | 20 | - | 250 | - | 50 minimum |\2. Custom |

If the API request rate is exceeded, a "global instantaneous rate limit":#global-rates will be applied to API requests. The hourly API request limit is a "time-based limit":#time, meaning no additional API requests will be accepted until the following hour if the hard limit is hit.

Expand All @@ -464,7 +464,7 @@ h2(#control-api). Control API limits

Control API limits relate to the number of requests that can be made using the "Control API":/control-api per hour.

|_=. Limit |_=. Free |_=. Self-service |_=. Business (legacy) |_=. Enterprise |
|_=. Limit |_=. Free |_=. PAYG |_=. Business (legacy) |_=. Committed Use |
| "Authenticated account requests":#authenticated-account (per hour) | 4000 | 4000 | 4000 | 4000 |
| "Authenticated access token requests":#authenticated-token (per hour) | 2000 | 2000 | 2000 | 2000 |
| "Unauthenticated requests":#unauthenticated (per hour) | 60 | 60 | 60 | 60 |
Expand Down

0 comments on commit 0a63ec4

Please sign in to comment.