Zigflow is a Temporal DSL — a domain-specific language for defining and running Temporal workflows declaratively.
Zigflow provides a simple and declarative way to define and manage Temporal workflows using a Temporal DSL built upon the CNCF Serverless Workflow specification.
A Temporal DSL is a domain-specific language that allows workflows to be defined declaratively, rather than imperatively in application code.
Zigflow’s Temporal DSL compiles declarative workflow definitions into fully featured Temporal workflows, giving you the reliability, retries, and state management of Temporal without requiring SDK boilerplate.
- ✅ Temporal DSL – declarative workflow definitions that compile to Temporal workflows
- ✅ CNCF Standard – fully aligned with Serverless Workflow v1.0+
- ✅ Low-code & Visual-ready – ideal for UI workflow builders and orchestration tools
- ✅ Powered by Temporal – battle-tested reliability, retries, and state management
- ✅ Kubernetes-native – includes a Helm chart for easy deployment
- ✅ Open & Extensible – customize, extend, and contribute easily
Ziggy is a tardigrade and Temporal's official mascot. They're a microscopic animal that is basically indestructible.
Sound familiar?
Tip
There is a runnable version of this in examples/hello-world
Below is an example workflow written using the Zigflow Temporal DSL:
document:
dsl: 1.0.0
namespace: zigflow # Mapped to the task queue
name: hello-world # Workflow type
version: 1.0.0
do:
- set:
output:
as:
data: ${ . }
set:
message: Hello from ZiggyRun it through Zigflow:
zigflow -f ./path/to/workflow.yamlThis builds your Temporal workflow and runs the workers — no additional Go boilerplate required.
You can now run it with any Temporal SDK, in the Temporal UI or from the Temporal CLI.
- Task Queue:
zigflow - Workflow Type:
hello-world
Telemetry helps us understand if people are actually using Zigflow. Stars are great, but a tiny bit of usage data gives us a clearer picture of what’s happening out there.
Zigflow creates a UUID (stored in ~/.config/zigflow) and sends just two things:
- that anonymous ID
- the Zigflow version you’re running
That's it.
Telemetry is optional and easy to turn off. You can disable it by setting the environment variable:
DISABLE_TELEMETRY=trueor by running Zigflow with:
--disable-telemetryZigflow is an open-source Temporal DSL designed to make workflow authoring simpler, more visual, and easier to share.
Contributions are welcome!
All commits must be done in the Conventional Commit format.
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
Made with contrib.rocks.
Distributed under the Apache-2.0 license
© 2025 - 2026 Zigflow authors
