Quotas and limits

This document lists the quotas and limits that apply to Workflows.

A quota restricts how much of a shared Google Cloud resource your Google Cloud project can use, including hardware, software, and network components. Therefore, quotas are a part of a system that does the following:

  • Monitors your use or consumption of Google Cloud products and services.
  • Restricts your consumption of those resources, for reasons that include ensuring fairness and reducing spikes in usage.
  • Maintains configurations that automatically enforce prescribed restrictions.
  • Provides a means to request or make changes to the quota.

In most cases, when a quota is exceeded, the system immediately blocks access to the relevant Google resource, and the task that you're trying to perform fails. In most cases, quotas apply to each Google Cloud project and are shared across all applications and IP addresses that use that Google Cloud project.

There are also limits on Workflows resources. These limits are unrelated to the quota system. Limits cannot be changed unless otherwise stated.

Quotas

Workflows enforces the following quotas for each Google Cloud project:

Quota Description Value
Total workflows The maximum number of workflows you can deploy per project 10,000
Concurrent executions The maximum number of active workflow executions per region, per project; concurrent executions are those that have started and not yet completed or failed, including any that are waiting. Once the limit is reached, new executions fail with an HTTP 429 Too many requests status code. 5,000
Workflow API requests The maximum number of API requests (create, update, list, get, delete) from all workflows in your project (per minute per location) 1,200
Execution API get requests The maximum number of requests to get workflow executions from all workflows in your project (per minute per location) 6,000
Execution API list requests The maximum number of requests to list workflow executions from all workflows in your project (per minute per location) 1,200
Execution API write requests The maximum number of requests to create and cancel workflow executions (including Eventarc-triggered executions) from all workflows in your project (per minute per location).

If Eventarc-triggered executions exceed this maximum, the events are retried following the Eventarc retry policy.

6,000
HTTP requests to callback endpoints The maximum number of SendHttpCallback API requests per minute per location made on execution resources from all workflows in your project 1,500

Quota increase requests

To increase or decrease quotas, use the Google Cloud console. For more information, see Requesting a higher quota.

Step limits

Workflows enforces the following step limits for each workflow:

Limit Description Value
Assignments per step The maximum number of assignments that may be performed in a single step 50
Conditions per switch The maximum number of conditions that may be evaluated in a single switch block 50
Maximum call stack depth The maximum number of levels of calling functions; for example, when a subworkflow calls itself or another subworkflow; or, standard library function calls that in turn call other functions 20
Minimum steps The minimum number of steps within a workflow 1
Maximum steps The maximum number of steps that may be performed in a single workflow execution 100,000

Parallel steps

Workflows enforces the following limits when using parallel steps:

Limit Description Value
Branches per step The maximum number of branches supported within a parallel step 10
Parallel depth The maximum depth that parallel steps can be nested 2
Concurrent branches and iterations

The maximum number of branches and iterations that can concurrently execute within a single workflow execution before further branches and iterations are automatically queued to wait for one or more running threads to complete.

There is no total thread count limit; however, all other limits apply.

20
Uncaught exceptions within a parallel step The maximum number of unhandled exceptions that can be raised during the execution of the workflow (in total) 100

Resource limits

Workflows enforces the following usage limits:

Limit Description Value
Source code size The maximum size of the YAML or JSON file that defines your workflow 128 KB
Response size The maximum size of an HTTP response (if saved to a variable, the memory limit for variables applies) 2 MB
Expression length The maximum number of characters in a single expression 400 characters
Data size The maximum cumulative size for variables, arguments, and events: 512 KB
  • Maximum amount of memory that you can use for all variables that you define in a single execution of a given workflow
  • Maximum size of the arguments you can pass when creating a workflow execution
  • Maximum size of the Eventarc payload you can pass when triggering a workflow execution with events
Maximum string length in bytes using UTF-8 encoding 256 KB
Environment variables The maximum size for a user-defined environment variable definition string (KEY=value); a maximum of 20 variables can be defined 4 KiB
Execution duration The maximum duration (from start time to end time) for a workflow execution; any workflow that passes this limit ends with a time-out error 1 year
Execution retention The maximum retention period (after a workflow execution completes) of an execution's history and results 90 days