Skip to main content

Overview

What you will learn

  • What Zigflow is and what it does
  • How it relates to Temporal
  • What Zigflow does not do
  • The five-point mental model

What is Zigflow?

Zigflow is a workflow worker that reads a YAML file and runs it on Temporal.

You describe your workflow in YAML. Zigflow validates that description, compiles it into a Temporal workflow and starts a worker that processes executions.

workflow.yaml
document:
dsl: 1.0.0
namespace: zigflow
name: greet-user
version: 1.0.0
do:
- greet:
set:
message: Hello from Ziggy

Run the worker:

zigflow run -f workflow.yaml

A client application (using any Temporal SDK) then starts an execution against the zigflow task queue with workflow type greet-user.


How it relates to Temporal

Temporal is a durable execution platform. It persists workflow state, handles retries and coordinates workers.

Zigflow sits in front of Temporal as the worker side. It:

  • Reads your YAML workflow definition
  • Validates it before doing anything else
  • Registers it with Temporal
  • Polls Temporal for executions
  • Executes tasks deterministically as Temporal replays the history

Zigflow does not replace Temporal. It requires Temporal to function. You still need a Temporal server running somewhere.


The mental model

  1. A workflow definition is a YAML file, not application code.
  2. Zigflow compiles that YAML into a Temporal workflow at startup.
  3. The worker polls Temporal for executions. It does not listen on a port.
  4. Validation runs before the worker starts. Invalid workflows fail fast.
  5. Execution is deterministic. All side effects belong in activities, not inline workflow logic.

What Zigflow does not do

Zigflow is a worker and a compiler. It does not:

  • Provide a Temporal server (you must supply one)
  • Act as an HTTP API for triggering workflows (use a Temporal SDK or the Temporal UI)
  • Store workflow results (Temporal handles persistence)
  • Support all constructs from the CNCF Serverless Workflow specification (unsupported features are rejected with a clear error)
  • Allow non-deterministic code inside workflow definitions

Common mistakes

Confusing the Zigflow namespace with the Temporal namespace. The document.namespace field maps to the Temporal task queue, not the Temporal namespace. The Temporal namespace is set at runtime via --temporal-namespace.

Expecting Zigflow to trigger workflows. Zigflow runs the worker. Triggering an execution is done from a Temporal client, the Temporal CLI or the Temporal UI.