Skip to content

Rate Limiter

The Rate Limiter block controls the execution frequency of a branch within a Workflow by enforcing a cooldown period. It ensures that the connected steps do not run more frequently than a specified interval, helping to manage resource usage and prevent over-execution.

Block usage

Rate Limiter is useful when you have two blocks that are directly connected, as shown below:

--- input_a --> ┌───────────┐ ┌───────────┐ --- input_b --> │ step_1 │ --> output_a --> │ step_2 │ --- input_c --> └───────────┘ └───────────┘

If you want to throttle the Step 2 execution rate - you should apply rate limiter in between:

  • keep the existing blocks configuration as is (do not change connections)

  • set depends_on reference of Rate Limiter into output_a

  • set next_steps reference to be a list referring to [$steps.step_2]

  • adjust cooldown_seconds to specify what is the number of seconds that must be awaited before next time when step_2 is fired

Cooldown limitations

Current implementation of cooldown is limited to video processing - using this block in context of a Workflow that is run behind HTTP service (Roboflow Hosted API, Dedicated Deployment or self-hosted inference server) will have no effect for processing HTTP requests.

Type identifier

Use the following identifier in step "type" field: roboflow_core/rate_limiter@v1to add the block as as step in your workflow.

Properties

Name Type Description Refs
name str Enter a unique identifier for this step..
cooldown_seconds float The minimum number of seconds between allowed executions..

The Refs column marks possibility to parametrise the property with dynamic values available in workflow runtime. See Bindings for more info.

Available Connections

Check what blocks you can connect to Rate Limiter in version v1.

Input and Output Bindings

The available connections depend on its binding kinds. Check what binding kinds Rate Limiter in version v1 has.

Bindings
  • input

    • depends_on (*): Reference to any output of the the step which immediately preceeds this branch..
    • next_steps (step): Reference to steps which shall be executed if rate limit allows..
    • video_reference_image (image): Reference to a video frame to use for timestamp generation (if running faster than realtime on recorded video)..
  • output

Example JSON definition of step Rate Limiter in version v1
{
    "name": "<your_step_name_here>",
    "type": "roboflow_core/rate_limiter@v1",
    "cooldown_seconds": 1.0,
    "depends_on": "$steps.model",
    "next_steps": [
        "$steps.upload"
    ],
    "video_reference_image": "$inputs.image"
}