Limits
Understanding ART's Limit Calculations
ART's robust infrastructure employs a tiered limiting system to ensure consistent performance and protect against unintended resource spikes. Limits are carefully evaluated based on three distinct measures, each designed to manage platform usage effectively and provide clarity on consumption:
1. Count Limits
As the name implies, count-based limits govern the maximum number of resources that can be simultaneously active or in use. When your application's resource consumption reaches this predefined count limit, attempts to utilize additional resources will be restricted until existing resources are either completed or terminated, thereby making space for new resource requests. Parameters such as concurrent connections and maximum presence members per channel are subject to direct count-based limits, where exceeding the value prevents further additions. Other parameters, like total message count and total connection minutes, are also tracked by count but, instead of a hard cessation, their usage beyond a base allowance leads to additional billing, providing flexible scalability.
2. Rate Limits
Rate limits define the permissible frequency at which specific resource can be used, typically measured as occurrences per second. Exceeding this defined rate for a resource will result in the immediate rejection of subsequent attempts. For instance, the maximum message rate limit in ART's infrastructure controls how quickly messages can be published to a channel. If this limit is reached, further messages may be rejected .To manage such scenarios effectively, developers can implement strategies like client-side buffering, retries with exponential backoff.
3. Size Limits
ART also imposes size-based limits, which primarily govern the maximum permissible size of individual data payloads transmitted through its infrastructure. For example, the size of a message payload is assessed before it is transmitted via ART's WebSocket infrastructure. If a message's size surpasses the limit specified by your subscription plan, its transmission will be prevented. In such situations, developers would need to implement a solution, such as chunking the message into smaller, compliant segments for successful transmission.
More on limited & unrestricted parameters below.