Queues

Customers can overwhelm our systems with valid requests for large-scale file processing in just seconds. To manage these peaks efficiently and ensure smooth service for all customers, we have implemented queueing mechanisms.

How does it work?

  • Live Queue: Direct file uploads put encoding jobs into the Live Queue for immediate processing, which acts as a fast lane. Live jobs are prioritized over all other jobs. The Live Queue is shared between all customers.
  • Batch Queue: The Batch Queue is for larger jobs that don't require real-time processing. For example, importing multiple files in the same Assembly using our import Robots immediately places those jobs into the Batch Queue. Jobs are only taken from the Batch Queue when the shared Live Queue is empty. The Batch Queue is also shared between all customers.
  • Automatic turnover: If too many live jobs are sent and you exceed your subscription plan's amount of Priority Job Slots, jobs will trickle down into the Backup Queue to avoid affecting other customers' live performance. They will be sent back to the Live Queue as soon as some of your live jobs complete and thereby freeing up your Workspace's Priority job slots.
  • Backup Queue: Likewise, If too many batch jobs are sent, they will trickle down into a Backup Queue as well, and be re-enqueued into the shared Batch Queue as soon as some of your batch jobs complete and thereby freeing up your workspace's batch job slots.

How many slots do jobs cost?

The number of slots required varies depending on the type of job. A job that uses any of the video Robots occupies 60 slots, while an /image/resize job uses only 5 slots for example.

A list of all robots and their slot requirements can be found in the Priority Job Slot FAQ entry.

How many jobs can I process in parallel?

Each subscription plan comes with a limit on live job slots and batch job slots per region. For example, if your Priority job slot limit is 120, you can have either 24 concurrent image resizes (5 slots each) or 2 concurrent video encodings before jobs start trickling down into the Batch Queue. Likewise, if you have 360 batch job slots, having more than 6 video jobs enqueued in the batch queue will mean subsequent jobs get enqueued into the Backup queue.

Your subscription plan's Priority job slots and Batch job slots limits are per region.

How can I avoid degraded performance?

  1. Get higher amounts of Priority job slots and Batch job slots, which increases throughput. Contact us for custom values.

  2. Set waitForEncoding to false (available in, e.g., the Uppy integration). This makes processing asynchronous, so two-minute queue times won't block the end-user experience. When the files are ready, we ping the notify_url and you notify your user. This approach provides the best user experience and reliability, allowing you to enable assembly replays if needed. You can find more on this in the documentation for Assembly Notifications.

  3. By setting queue: 'batch' in your steps, you can downgrade the priority of your jobs yourself, to avoid consuming Priority job slots for jobs that don't really need zero queue waiting times.

Where can I check current queue times in my region?

You can check current queue times for both Live Queues and Batch Queues on our Status Page, and programmatically access them via our Queues API Endpoint (values are in seconds).