Skip to main content

Zigflow: A Temporal DSL

A Temporal DSL for turning declarative YAML into production-ready workflows

Simplified Workflow Authoring

Focus on the business logic of what you want to achieve rather than focusing on how to use Temporal.

Consistency and Reusability

Zigflow enforces consistent patterns across your Temporal estate, allowing you to reuse definitions, share components and make your entry to the world of Temporal easier.

Low Code

Get all the benefits of Temporal - reliability, speed and consistency - without having to learn the nuances of writing code

Zigflow is a Temporal DSL — a domain-specific language for defining and running Temporal workflows declaratively.

User-Friendly DSL: Temporal Made Simple

A collection of examples of how to use Zigflow's Temporal DSL to create Temporal workflows. These can be found in the GitHub repo.

Child Workflows

Define multiple workflows and call a child workflow from a parent

workflow.yaml
document:
dsl: 1.0.0
namespace: zigflow
name: childWorkflow
version: 0.0.1
title: Child Workflows
summary: Define multiple workflows and call a child workflow from a parent
timeout:
after:
minutes: 1
do:
- parentWorkflow:
do:
- wait:
wait:
seconds: 5
# Call child workflow as a single workflow - this will be run synchronously
- callChildWorkflow1:
run:
workflow:
name: child-workflow1
namespace: default
version: 0.0.0
# Do a fan-out child workflow - this will be run asynchronously
- fanOut:
fork:
compete: false
branches:
- callWorkflow1:
run:
workflow:
name: child-workflow1
namespace: default
version: 0.0.0
- callWorkflow2:
run:
workflow:
name: child-workflow2
namespace: default
version: 0.0.0
- wait:
output:
as:
completed: true
wait:
seconds: 5
- child-workflow1:
do:
- wait:
wait:
seconds: 10
- child-workflow2:
do:
- wait:
wait:
seconds: 3