Workflow Execution Limits
This page discusses Workflow Execution limits, Workflow Execution Callback limits, and Nexus Operation limits.
Limits
There is no limit to the number of concurrent Workflow Executions, albeit you must abide by the Workflow Execution's Event History limit.
As a precautionary measure, the Workflow Execution's Event History is limited to 51,200 Events or 50 MB and will warn you after 10,240 Events or 10 MB.
There is also a limit to the number of certain types of incomplete operations.
Each in-progress Activity generates a metadata entry in the Workflow Execution's mutable state.
Too many entries in a single Workflow Execution's mutable state causes unstable persistence.
To protect the system, Temporal enforces a maximum number of incomplete Activities, Child Workflows, Signals, or Cancellation requests per Workflow Execution (by default, 2,000 for each type of operation).
Once the limit is reached for a type of operation, if the Workflow Execution attempts to start another operation of that type (by producing a ScheduleActivityTask
, StartChildWorkflowExecution
, SignalExternalWorkflowExecution
, or RequestCancelExternalWorkflowExecution
Command), it will be unable to (the Workflow Task Execution will fail and get retried).
These limits are set with the following dynamic configuration keys:
NumPendingActivitiesLimit
NumPendingChildExecutionsLimit
NumPendingSignalsLimit
NumPendingCancelRequestsLimit
Workflow Execution Callback limits
There is a limit to the total number of Workflow Callbacks that may be attached to a single Workflow Execution (by default, 32 Workflow Callbacks). Attaching multiple Nexus callers to a handler Workflow may exceed these limits.
These limits can be set with the following dynamic configuration keys:
- MaxCallbacksPerWorkflow
Workflow Execution Nexus Operation Limits
There is a limit to the maximum number of Nexus Operations in a Workflow before Continue-As-New is required. Each in-progress Nexus Operation generates a metadata entry in the Workflow Execution's mutable state. Too many entries in a single Workflow Execution's mutable state causes unstable persistence. To protect the system, Temporal enforces a maximum number of incomplete Nexus Operation requests per Workflow Execution (by default, 30 Nexus Operations). Once the limit is reached for a type of operation, if the Workflow Execution attempts to start another Nexus operation (by producing a ScheduleNexusOperation), it will be unable to do so (the Workflow Task Execution will fail and get retried).
These limits are set with the following dynamic configuration keys:
- MaxConcurrentOperations