---
id: "workflow-engine"
type: "kind"
category: "compute"
url: "https://localhost:3000/catalogue/kinds/workflow-engine"
---

# Workflow engine

Durable orchestration of multi-step processes with retries and compensation.

| | |
|---|---|
| Category | Compute |
| Properties | 6 |
| Components | 45 |
| Rules | 1 |

## Properties

| property | type | values | required | default |
|---|---|---|---|---|
| `compensation` | boolean | — | no | false |
| `durable` | boolean | — | no | true |
| `humanReview` | boolean | — | no | false |
| `managed` | boolean | — | no | false |
| `pattern` | enum | `saga`, `tcc`, `two-phase-commit`, `dag` | no | "dag" |
| `stepsIdempotent` | boolean | — | no | false |

## Rules for this kind · 1

### Stateful node without zone redundancy `stateful-node-without-zone-redundancy` (error)

- Page: https://localhost:3000/catalogue/rules/stateful-node-without-zone-redundancy.md
- Why: A stateful compute node pinned to exactly one availability zone disappears with that zone, and its state goes with it. Nodes inside a cell are exempt, because there the cell is deliberately single-zone and redundancy comes from the other cells.
- Applies to: every node in category compute
- Message: Stateful node '{{node.id}}' lives in exactly one availability zone. A zone outage takes its state with it.

It fires when:

- all of these hold:
  - the node's `stateless` is false
  - the node sits inside exactly 1 availability-zone group
  - this does not hold:
    - the node sits inside at least one cell group

## Components · 45

### vendor-neutral

- [Generic workflow engine](https://localhost:3000/catalogue/components/workflow-engine.md) `workflow-engine` — the kind itself

### alibabacloud

- [CloudFlow](https://localhost:3000/catalogue/components/alibaba-cloudflow.md) `alibaba-cloudflow` — 2 defaults
- [CloudOps Orchestration Service](https://localhost:3000/catalogue/components/alibaba-oos.md) `alibaba-oos` — 2 defaults

### aws

- [Amazon Augmented AI (A2I)](https://localhost:3000/catalogue/components/aws-augmented-ai.md) `aws-augmented-ai` — 3 defaults
- [Amazon Managed Workflows for Apache Airflow](https://localhost:3000/catalogue/components/aws-mwaa.md) `aws-mwaa` — 6 defaults
- [AWS Systems Manager Incident Manager and Change Manager](https://localhost:3000/catalogue/components/aws-ssm-incident-and-change-manager.md) `aws-ssm-incident-and-change-manager` — 4 defaults
- [AWS Step Functions](https://localhost:3000/catalogue/components/aws-step-functions.md) `aws-step-functions` — 4 defaults
- [Amazon Simple Workflow Service](https://localhost:3000/catalogue/components/aws-swf.md) `aws-swf` — 6 defaults

### azure

- [Azure Durable Functions](https://localhost:3000/catalogue/components/azure-durable-functions.md) `azure-durable-functions` — 4 defaults
- [Azure Logic Apps](https://localhost:3000/catalogue/components/azure-logic-apps.md) `azure-logic-apps` — 5 defaults

### cloudflare

- [Cloudflare Workflows](https://localhost:3000/catalogue/components/cloudflare-workflows.md) `cloudflare-workflows` — 3 defaults

### default

- [Apache Airflow](https://localhost:3000/catalogue/components/airflow.md) `airflow` — 4 defaults
- [Argo Workflows](https://localhost:3000/catalogue/components/argo-workflows.md) `argo-workflows` — 4 defaults
- [Astronomer Astro](https://localhost:3000/catalogue/components/astronomer.md) `astronomer` — 5 defaults
- [Cadence](https://localhost:3000/catalogue/components/cadence.md) `cadence` — 4 defaults
- [Camunda 8](https://localhost:3000/catalogue/components/camunda.md) `camunda` — 5 defaults
- [Conductor](https://localhost:3000/catalogue/components/conductor.md) `conductor` — 4 defaults
- [Dagster](https://localhost:3000/catalogue/components/dagster.md) `dagster` — 4 defaults
- [Digdag](https://localhost:3000/catalogue/components/digdag.md) `digdag` — 2 defaults
- [Flowable](https://localhost:3000/catalogue/components/flowable.md) `flowable` — 5 defaults
- [Inngest](https://localhost:3000/catalogue/components/inngest.md) `inngest` — 4 defaults
- [jBPM](https://localhost:3000/catalogue/components/jbpm.md) `jbpm` — 4 defaults
- [Kestra](https://localhost:3000/catalogue/components/kestra.md) `kestra` — 4 defaults
- [Luigi](https://localhost:3000/catalogue/components/luigi.md) `luigi` — 4 defaults
- [n8n](https://localhost:3000/catalogue/components/n8n.md) `n8n` — 4 defaults
- [Node-RED](https://localhost:3000/catalogue/components/node-red.md) `node-red` — 4 defaults
- [Prefect](https://localhost:3000/catalogue/components/prefect.md) `prefect` — 4 defaults
- [Prefect Cloud](https://localhost:3000/catalogue/components/prefect-cloud.md) `prefect-cloud` — 5 defaults
- [Restate](https://localhost:3000/catalogue/components/restate.md) `restate` — 4 defaults
- [Temporal](https://localhost:3000/catalogue/components/temporal.md) `temporal` — 4 defaults
- [Temporal Cloud](https://localhost:3000/catalogue/components/temporal-cloud.md) `temporal-cloud` — 4 defaults
- [Trigger.dev](https://localhost:3000/catalogue/components/trigger-dev.md) `trigger-dev` — 4 defaults
- [Windmill](https://localhost:3000/catalogue/components/windmill.md) `windmill` — 4 defaults
- [Workato](https://localhost:3000/catalogue/components/workato.md) `workato` — 5 defaults
- [Zapier](https://localhost:3000/catalogue/components/zapier.md) `zapier` — 5 defaults

### gcp

- [Application Integration](https://localhost:3000/catalogue/components/google-application-integration.md) `google-application-integration` — 3 defaults
- [Cloud Composer (Managed Service for Apache Airflow)](https://localhost:3000/catalogue/components/google-cloud-composer.md) `google-cloud-composer` — 2 defaults
- [Workflows](https://localhost:3000/catalogue/components/google-cloud-workflows.md) `google-cloud-workflows` — 3 defaults
- [Orchestration Pipelines](https://localhost:3000/catalogue/components/google-orchestration-pipelines.md) `google-orchestration-pipelines` — 2 defaults

### ibm

- [IBM App Connect](https://localhost:3000/catalogue/components/ibm-app-connect.md) `ibm-app-connect` — 1 defaults

### oci

- [Oracle Integration 3](https://localhost:3000/catalogue/components/oci-integration.md) `oci-integration` — 3 defaults
- [OCI Process Automation](https://localhost:3000/catalogue/components/oci-process-automation.md) `oci-process-automation` — 4 defaults
- [Oracle SOA Suite on Marketplace](https://localhost:3000/catalogue/components/oci-soa-suite.md) `oci-soa-suite` — 4 defaults

### openstack

- [OpenStack Adjutant](https://localhost:3000/catalogue/components/openstack-adjutant.md) `openstack-adjutant` — 3 defaults
- [OpenStack Mistral](https://localhost:3000/catalogue/components/openstack-mistral.md) `openstack-mistral` — 2 defaults

## Source (`kind` YAML, verbatim)

```yaml
# yaml-language-server: $schema=../schema/kind.schema.json
# Abstract kind: Durable orchestration of multi-step business processes with retries and compensation (Cadence, Temporal, Step Functions).
schemaVersion: "1"
type: "kind"
id: "workflow-engine"
category: "compute"
properties:
  durable:
    type: "boolean"
    default: true
  pattern:
    type: "enum"
    values: ["saga", "tcc", "two-phase-commit", "dag"]
    default: "dag"
  stepsIdempotent:
    type: "boolean"
    default: false
  compensation:
    type: "boolean"
    default: false
  humanReview:
    type: "boolean"
    default: false
  managed:
    type: "boolean"
    default: false
```

Human page: https://localhost:3000/catalogue/kinds/workflow-engine
