<Under development>
Types of Workflows
Stateful Workflows (Standard Model)
- Purpose: Used when you need to keep, review, or reference data from previous events. Suitable for complex, long-running processes requiring high resiliency and the ability to handle larger data sizes, leveraging external storage for state persistence and asynchronous execution.
- Storage: Save all operations’ inputs, outputs, and states to external storage.
- Resiliency: High resiliency with the ability to reconstruct interrupted runs from the saved state after outages.
- Duration: Can run much longer than stateless workflows.
- Execution Pattern: Runs asynchronously by default. HTTP actions follow the asynchronous operation pattern, where the request receiver returns a “202 ACCEPTED” response and the caller can poll for the status until completion.
- Usage: Ideal for long-running processes and handling larger content sizes, such as files larger than 64 KB.
- Triggers: Supports all types of triggers, including recurrence triggers.
- Advantages compared to Stateless Workflows:
- Stores run history, inputs, and outputs
- Managed connector triggers are available and allowed
- Supports chunking
- Supports asynchronous operations
- Edit default max run duration in host configuration (over 5 minutes)
- Handles large messages (over 64 KB)
Stateless Workflows
- Purpose: Used when you don’t need to keep data from previous events after each run finishes. Ideal for short, high-performance tasks with smaller data sizes, relying on in-memory state with synchronous execution, offering quick response times and cost efficiency.
- Storage: Save inputs and outputs in memory only, not in external storage.
- Performance: Offers shorter run times, faster performance, higher throughput, and reduced costs due to no external storage usage.
- Resiliency: Lower resiliency; interrupted runs are not automatically restored and need manual resubmission.
- Content Size: Best for handling data or content up to 64 KB in total size.
- Execution Pattern: Runs synchronously. Does not follow the asynchronous operation pattern and immediately proceeds to the next step without polling for status updates.
- Triggers: Managed connector triggers are unavailable. Use built-in triggers like Request, Event Hubs, or Service Bus triggers. Recurrence triggers are not supported.
- Debugging: Run history can be enabled for easier debugging, with some performance impact.
Reference Materials
- Microsoft Learn:
- Documentation:
- Architecture Center:
- GitHub: