Skip to content
doze
0.2

These are the docs for doze 0.2.

What changed in each release →

Temporal

Run a local Temporal server, with its Web UI and namespaces, for your workflow workers.

On this page

Runs Temporal 1 · macOS and Linux · registry page ↗

Run a Temporal server for your workflows and workers, with its Web UI and the namespaces you declare.

This is Temporal’s own dev server, from the Temporal CLI: one binary with the Temporal services, a SQLite store and the Web UI. No JVM, no Docker, no database to set up.

module temporal "flows" {
version = "1.1"
port = 7233
ui_port = 8233
namespace "orders" {}
}

Declare port: it gives the server its address, which doze url prints and an app references.

Terminal window
doze url flows
# flows.shop.doze:7233
app "worker" {
run = "go run ./cmd/worker"
env = { TEMPORAL_ADDRESS = module.flows.address }
}

The Web UI listens on ui_port; headless = true turns it off.

Temporal does not sleep. doze runs the server itself rather than waking it on a connection, and workers long-poll it all the time anyway, so it runs while the stack is up. A sleep duration on it is an error (sleep = "never" is allowed and changes nothing). See Sleep and wake.

A local Temporal dev server: a single pure-Go binary bundling the Temporal services, a SQLite store, and the Web UI, with no JVM or Docker. Supervised and always-on (workers long-poll it); connect via TEMPORAL_ADDRESS.

module temporal "dev" {
version = "1.1"
port = 7233
ui_port = 8233
namespace "orders" {}
namespace "billing" {}
}

The version = you write is the engine’s own version. Declare a series and doze pins its newest published build, or declare an exact build. Either way it is fetched, verified and pinned in doze.lock, so it never moves on its own.

version = pins (today) exact builds
1.0 1.0.0 1
1.1 1.1.2 3
1.2 1.2.0 1
1.3 1.3.0 1
1.4 1.4.1 2
1.5 1.5.1 2
1.6 1.6.2 3
1.7 1.7.3 4
1.8 1.8.2 3
Every exact build, per series

1.0: 1.0.0

1.1: 1.1.2 · 1.1.1 · 1.1.0

1.2: 1.2.0

1.3: 1.3.0

1.4: 1.4.1 · 1.4.0

1.5: 1.5.1 · 1.5.0

1.6: 1.6.2 · 1.6.1 · 1.6.0

1.7: 1.7.3 · 1.7.2 · 1.7.1 · 1.7.0

1.8: 1.8.2 · 1.8.1 · 1.8.0

Field Type Default Description
version string — temporal CLI version Required.
port number 7233 frontend gRPC port
ui_port number 8233 Web UI port
headless bool false disable the Web UI

Every module block also takes doze’s own fields: port, listen, sleep, after, enabled, routes, count and for_each (doze.hcl reference).

namespace "<name>" { … } — a namespace to create (repeatable; label = name; retention, description)

The module does not list this block’s fields yet.

restart { … } — supervisor restart policy (policy, backoff, max_retries)

The module does not list this block’s fields yet.

The releases of the module that provide this engine. doze picks the newest one that fits your doze and your version =, and pins it in doze.lock; you never write these. Older releases stay available for pinned lockfiles.

Release Engine versions Platforms
0.2.2 1 3 stable
0.2.1 1 3

Signed data: index.yaml ↗ · meta.yaml ↗