Serverless Workflow

Standards-based DSL and open-source dev tools and runtimes are at the heart of the Serverless Workflow project. We connect developers around the world to foster innovation and provide a community-driven workflow ecosystem.


Specify low-code, event-driven workflow orchestrations

using the most powerful open-source, vendor-neutral workflow DSL. Our DSL provides integrations with widely used standards for events and services such as CloudEvents, OpenAPI, AsyncAPI, GraphQL, gRPC, and more.

  • Define

    JSON, YAML

    Define you orchestration logic that is triggered via events and invokes services sync or async. Write logic that includes human decisions, set timeouts and retries, handle errors, and much more...

  • Develop

    Java, Go, TypeScript, .NET, ...

    Start developing your workflow orchestrations with help of our project SDKs. Get help creating out-of-box user experience using our open-source editor/web tooling and visualization support

  • Execute

    Serverless, Cloud-Native, Distributed runtimes

    Execute and scale your workflow-based orchestrations to build high-end applications.

Describe your business logic with the most powerful open-source DSL

View full example in web editor
{
  "states": [
    {
      "name": "Monitor Vitals",
      "type": "event",
      "onEvents": [
        {
          "eventRefs": [
            "High Body Temp Event",
            "High Blood Pressure Event"
          ],
          "actions": [
            {
              "functionRef": "Invoke Dispatch Nurse Function"
            }
          ]
        },
        {
          "eventRefs": [
            "High Respiration Rate Event"
          ],
          "actions": [
            {
              "functionRef": "Invoke Dispatch Pulmonologist Function"
            }
          ]
        }
      ]
    }
  ]
}
View full example in web editor
{
  "states": [
    {
      "name": "Send Email",
      "type": "operation",
      "actions": [
        {
          "functionRef": {
            "invoke": "async",
            "refName": "Invoke Send Email Function",
            "arguments": {
              "customer": "${ .customer }"
            }
          }
        }
      ]
    }
  ]
}
View full example in web editor
{
  "states": [
    {
      "name": "ProvisionOrder",
      "type": "operation",
      "actions": [
        {
          "functionRef": {
            "refName": "provisionOrderFunction"
          }
        }
      ],
      "onErrors": [
        {
          "errorRef": "Missing order id",
          "transition": "MissingId"
        },
        {
          "errorRef": "Missing order item",
          "transition": "MissingItem"
        },
        {
          "errorRef": "Missing order quantity",
          "transition": "MissingQuantity"
        }
      ]
    }
 ]
View full example in web editor
{
   "states": [
        {
            "name": "Item Purchase",
            "type": "event",
            "onEvents": [
                {
                    "eventRefs": [
                        "New Purchase Event"
                    ],
                    "actions": [
                        {
                            "functionRef": "Invoke Debit Customer Function"
                        }
                    ]
                }
            ],
            "compensatedBy": "Cancel Purchase",
            "onErrors": [
                {
                    "errorRef": "Debit Error",
                    "end": {
                        "compensate": true
                    }
                }
            ]
        },
        {
            "name": "Cancel Purchase",
            "type": "operation",
            "usedForCompensation": true,
            "actions": [
                {
                    "functionRef": "Invoke Credit Customer Function"
                }
            ]
        }
    ]
}
View full example in web editor
{
    "id": "periodicInboxCheck",
    "name": "Periodic Check Inbox Workflow",
    "version": "1.0",
    "description": "Periodically Check Inbox",
    "start": {
        "stateName": "CheckInbox",
        "schedule": {
            "cron": "0 0/15 * * * ?"
        }
    },
    "states": [...]
}

Model human decisions, define timeouts and retries, define parallel exec logic and looping, make data and event-based decisions, define callbacks, write powerful expressions, set secrets and constants and much more.

Read the specification document for the list of all DSL features.

Execute your production workflows

Serverless Workflow welcomes all open-source runtimes to become part of our project community. Contact us to find out how you can make your runtime part of our project and CNCF.

  • Synapse

    Synapse is a vendor-neutral, free, open-source, and community-driven Workflow Management System (WFMS) implementing the Serverless Workflow specification. You can deploy Synapse on Docker, Kubernetes, or natively on Windows, Mac, and Linux.

Join our workflow community

Support our Project

And be featured on our website, workshops, talks, meetups and more!

Our Sponsors play a big part of our project. Alongside our community, their donations foster our projects ability to grow and maintain being completely vendor neutral.

We would like to thank the following companies who have made donations to our project:

Neuroglia

Neuroglia is a consultancy and solution design company for the digital transformation of companies and their services..

Sign up for upcoming and view past community events

Adopted by leading brands in workflow technologies

These brands are already using Serverless Workflow. Is your company using Serverless Workflow and wants to be included in this list? Let us know here!

  • Huawei

    Huawei FunctionGraph hosts event-driven functions in a serverless context while ensuring high availability, high scalability, and zero maintenance.

  • Neuroglia

    Neuroglia is a consultancy and solution design company for the digital transformation of companies and their services..

  • Red Hat

    Red Hat Kogito is a cloud-native business automation framework for building intelligent business applications.



  • Temporal

    Temporal is the open source microservice orchestration platform for writing durable workflows as code.

  • Tantl

    Tantl is making it easy for developers to build internal workflows, such as allowing customer support reps to quickly process refunds.

  • OpenEnterprise

    OpenEnterprise Automatiko helps you build better services and functions based on workflows expressed with well known standards.



  • Apache EventMesh

    A dynamic event-driven application runtime used to decouple the application and backend middleware layer.

  • FaasNet

    FaasNet makes it easy to deploy functions and API to Kubernetes without repetitive, boiler-plate coding.