Message Throttling
All message throughput is also subject to throttling and rate limits. Different rates apply depending on the type of incoming or outgoing data and the channel through which it travels.
MQTT
Losant’s MQTT broker usage is subject to a few limits:
- 30 messages in a 15-second window per topic (or, on average, two messages per second)
- 300 messages in a 15-second window per client connection (or, on average, 20 messages per second)
- 300 new device connections in a 15-second window per application (or, on average, 20 new connections per second)
- 256KB per message
If you exceed the message rate limits, the device generating the messages is automatically disconnected, and will not be allowed to connect back to the broker for 30 seconds. If a device repeatedly exceeds these limits, the length of time the device is not allowed to connect will increase, up to a maximum of one hour.
Incoming and Outgoing Messages
An incoming message is typically a device reporting its state, and an outgoing message is usually a command being sent to a device. For example, if one command is sent to 50 devices, the command only counts as one outgoing message per connection against the message throttling limit, but it counts as 50 payloads against the payload limit.
However, incoming and outgoing messages can also come through custom MQTT topics, and in those cases, the topic rate limits are applied individually per direction. As in, a device may receive two messages per second and publish two messages per second on the same topic without exceeding the per-topic rate limit.
Events
Event creation is limited to 15 creations in a 15-second window per application (or, on average, one per second).
Webhooks
Webhook requests are limited to 100 calls in a 10-second window per webhook (or, on average, 10 per second). If you exceed this limit, the webhook will respond with a 429
“Over rate limit, request throttled” error.
Integrations
Integration messages are consumed at a rate of 200 messages in a 10-second window per integration (or, on average, 20 per second). If the integration is publishing messages at a rate higher than that, those messages will remain queued at the source (if the source supports that), and the messages will be consumed at the 20-per-second average rate.
The size of an individual integration message is also limited to 256KB.
Virtual Button Presses
Presses of a Virtual Button in an Application Workflow are limited to 100 calls in a 10-second window per Virtual Button (or, on average, 10 per second). This includes invocations by manual press, by Workflow Trigger Node executions, and by Input Controls Block executions.
Was this page helpful?
Still looking for help? You can also search the Losant Forums or submit your question there.