How can we help you today?

Why is there an hourly or per second limit on messages and data transfer?
Print

Modified on: Thu, 1 Nov, 2018 at 11:36 AM

To help prevent the abuse of accounts, whether intentional or by mistake, we impose both an hourly and per second message and bandwidth limit on all accounts. This hourly limit is calculated as a percentage of your message quota. By default we allow customers to use their entire monthly quota in three days which amounts to 1.39% of your monthly quota per hour.

There is a large safety margin built in, to give you plenty of time to react to the email to avoid disruption to your customers. If exceed your hourly quota by more than 2.5x, or by 5x as a business customer, Ably may start refusing to publish or deliver new messages on your account for the remainder of that hour.

There is also an instantaneous per second message limit: accounts can burst to up to 6.25x their pro rata hourly package rate (62.5x their pro rata monthly rate); sustained usage above that is liable to be rejected on a rolling probabilistic basis -- for example, if you are publishing at double your permitted instantaneous rate, each message has a 50% chance of being rejected, with the suppression probability being continuously updated based on a moving average of the current attempted publish rate.

Ably guarantees that if we accept a message we will deliver it. So any message rejected for breaching a limit (instantaneous, hourly, or monthly) will not be silently dropped: the publisher will get a NACK -- for example, the callback passed to publish() will be called with an error, with error code indicating the specific cause of the publish rejection, so it can take any further action it needs. In the case of an instananeous rate limit, the error code is 42911.

If you are on an Enterprise account you can customize all the default limits (including our hourly and instantaneous limit on messages and data transfer).