I've hit a max rate limit for reactor, what does this mean?

This means you've sent enough events through Reactor within the last second to surpass your limit or to be warned about your usage.  There are two types of reactor limit you may get:

  • reactor.httpEvent - this includes all Reactor Events such as AWS Lambda, Google Functions, Azure Functions and custom HTTP endpoints.
  • reactor.amqp - this includes all Reactor Queue and Firehose streaming 


There are two types of limit types you can hit for both of these:

  • maxRate.warning - when you reach 50% of your quota.
  • maxRate.hard - when the hard limit on the account has been exceeded. Events will now be suppressed until the second is over.


If you need the ability to send more events through Reactor, we recommend you get in touch to discuss upgrading to a bespoke package.


How are instantaneous rate limits implemented?


An instantaneous rate limit is calculated based on the current rate of the operation per second. For example, a self-service package can publish at most 200 messages per second to their Ably Reactor queues; if you exceed this, messages above that point will be suppressed. This is done on a rolling probabilistic basis; for example, if you have a queue rule that attempts to publish 400 messages per second to a queue, each one will have a 50% chance of being rejected, with the suppression probability being continuously updated based on the current attempted publish rate.