When your website experiences a sudden traffic surge, a waiting room protects your origin server from overload. It manages user flow by limiting the number of concurrent users who can access your site and placing excess users in an orderly queue.
Benefits
A waiting room provides flexible traffic control to protect your origin server:
Dynamically control origin traffic: You can set thresholds for total active users and new users per minute to match your origin server's capacity, keeping your service online.
Session persistence: Maintains each visitor's status, so they do not have to re-queue if they briefly navigate away from your site.
Multiple queuing methods: You can manage the user queue with various methods, such as first-in, first-out (FIFO) and random.
Bypass rules: You can configure bypass rules to allow specific requests to skip the queue and access the origin server directly.
Limitations
Because the waiting room feature of the ESA product uses a distributed node architecture and there are data synchronization delays between nodes across the network, this feature is not suitable for the following scenarios:
Scenarios that require strict FIFO ordering based on the time at which a client request reaches an ESA node.
High-demand flash sales that must be completed in a very short time, such as selling concert tickets within one or two seconds.
Use cases that require precise control over the number of active users. The actual number of active users may deviate by up to 10% from the configured value.
Overview
When your website launches an event, such as a product promotion, a large number of users may rush to your site at the same time. Because users need to access the origin server to retrieve the latest data, your origin server is at risk of crashing in such a high-concurrency scenario, which can significantly impact your business availability. To address this, ESA provides a waiting room service that functions like a station. By creating a waiting room, you can limit the number of users who can access the origin server at the same time and assign users who are waiting for their turn to the waiting room. Users in the waiting room are like passengers in a waiting hall, waiting in sequence to board the 'train' to the origin server.
You can use a cookie to track each user's position in the queue, similar to how a ticket holds a number. The waiting room also acts like a station's departure board, providing users with real-time updates on their queue status.
How it works
After a client request is sent to an ESA POP
If the cache on the ESA node is hit, the ESA node directly returns the cached content to the client.
If the cache on an ESA node is missed, the client request is sent to the origin server to retrieve the content. The ESA node then matches the URL of the client request against the configured waiting room matching rules.
If the request does not match a waiting room rule, the POP sends it directly to the origin server.
If the request matches a waiting room rule, ESA checks if traffic has reached the origin fetch threshold, which is determined by the total active users and new users per minute.
If the threshold has not been reached, the POP sends the request to the origin server.
If the threshold has been reached, ESA places the request in the waiting room queue. Queued requests are then sent to the origin server according to the selected queuing method.
Availability
The waiting room feature is available on the Premium and Enterprise plans. Some features require Waiting Room Pro, which is available for the Enterprise plan. To enable it, contact us.
Feature | Premium | Enterprise |
Basic waiting room features | ||
Number of waiting rooms | 1 | 1 by default. Up to 10 with Waiting Room Pro. |
Multiple hostnames and paths | 1 by default. Up to 50 with Waiting Room Pro. | |
Custom templates | Available with Waiting Room Pro. | |
Disable session renewal | Available with Waiting Room Pro. | |
JSON-friendly response | Available with Waiting Room Pro. | |
Custom queue status code | ||
Queuing method | Only FIFO is supported. | FIFO is supported by default. All queuing methods are available with Waiting Room Pro. |
Waiting room rules | Up to 5 rules with Waiting Room Pro. | |
Waiting room events | Up to 5 events with Waiting Room Pro. | |
SEO crawler bypass |