https://github.com/mrsimonemms/zigflow
A Temporal DSL for turning declarative YAML into production-ready workflows
https://github.com/mrsimonemms/zigflow
dsl durable-execution serverless-workflow temporal temporal-dsl workflow-management-system workflows yaml zigflow
Last synced: 19 days ago
JSON representation
A Temporal DSL for turning declarative YAML into production-ready workflows
- Host: GitHub
- URL: https://github.com/mrsimonemms/zigflow
- Owner: mrsimonemms
- License: apache-2.0
- Created: 2025-08-01T17:01:42.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2026-01-12T18:24:14.000Z (2 months ago)
- Last Synced: 2026-01-14T22:51:07.367Z (2 months ago)
- Topics: dsl, durable-execution, serverless-workflow, temporal, temporal-dsl, workflow-management-system, workflows, yaml, zigflow
- Language: Go
- Homepage: https://zigflow.dev/
- Size: 7.35 MB
- Stars: 67
- Watchers: 2
- Forks: 7
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Authors: AUTHORS
Awesome Lists containing this project
README
# Zigflow: A Temporal DSL for Declarative Workflows
[](https://zigflow.dev?utm_source=github&utm_medium=readme&utm_campaign=header)
[](https://github.com/mrsimonemms/zigflow/issues)
[](https://github.com/mrsimonemms/zigflow/blob/master/LICENSE)
[](https://github.com/mrsimonemms/zigflow/releases/latest)
[](https://goreportcard.com/report/github.com/mrsimonemms/zigflow)
**Zigflow is a Temporal DSL** β a domain-specific language for defining and running
[Temporal](https://temporal.io) workflows declaratively.
Zigflow provides a **simple and declarative way** to define and manage
[Temporal](https://temporal.io) workflows using a **Temporal DSL** built upon the
[CNCF Serverless Workflow](https://serverlessworkflow.io) specification.
---
## π§ What is a Temporal DSL?
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.
---
## π Help
* [Homepage](https://zigflow.dev?utm_source=github&utm_medium=readme&utm_campaign=help)
* [Helm chart](https://github.com/mrsimonemms/zigflow/tree/main/charts/zigflow)
* [Documentation](https://zigflow.dev/docs?utm_source=github&utm_medium=readme&utm_campaign=help)
* [Slack Community](https://temporalio.slack.com/archives/C09UMNG4YP7)
---
## β¨ Features
* β
**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
---
## β‘οΈ ZigFlow?
Ziggy is a tardigrade and [Temporal's official mascot](https://temporal.io/blog/temporal-in-space).
They're a microscopic animal that is [basically indestructible](https://en.wikipedia.org/wiki/Environmental_tolerance_in_tardigrades).
Sound familiar?
---
## π§© Example
> [!TIP]
> There is a runnable version of this in [examples/hello-world](./examples/hello-world)
Below is an example workflow written using the Zigflow **Temporal DSL**:
```yaml
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 Ziggy
```
Run it through Zigflow:
```bash
zigflow -f ./path/to/workflow.yaml
```
This builds your Temporal workflow and runs the workers β no additional Go
boilerplate required.
You can now run it with any [Temporal SDK](https://docs.temporal.io/encyclopedia/temporal-sdks),
in the [Temporal UI](https://docs.temporal.io/web-ui#workflow-actions) or from
the [Temporal CLI](https://docs.temporal.io/cli/workflow#start).
* [**Task Queue**](https://docs.temporal.io/task-queue): `zigflow`
* [**Workflow Type**](https://docs.temporal.io/workflows#intro-to-workflows):
`hello-world`
---
## π Telemetry
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:
```sh
DISABLE_TELEMETRY=true
```
or by running Zigflow with:
```sh
--disable-telemetry
```
---
## π§ Related Projects
Zigflow is an open-source **Temporal DSL** designed to make workflow authoring
simpler, more visual, and easier to share.
* [Temporal](https://temporal.io)
* [CNCF Serverless Workflow](https://serverlessworkflow.io)
* [Helm Chart Repository](./charts/zigflow)
---
## π€ Contributing
Contributions are welcome!
### Open in a container
* [Open in a container](https://code.visualstudio.com/docs/devcontainers/containers)
### Commit style
All commits must be done in the [Conventional Commit](https://www.conventionalcommits.org)
format.
```git
[optional scope]:
[optional body]
[optional footer(s)]
```
---
## βοΈ Contributors
Made with [contrib.rocks](https://contrib.rocks).
[](https://www.star-history.com/#mrsimonemms/zigflow&type=date&legend=top-left)
---
## πͺͺ License
Distributed under the [Apache-2.0](./LICENSE) license
Β© 2025 - 2026 [Zigflow authors](https://github.com/mrsimonemms/zigflow/graphs/contributors)