finds.dev← search

// the find

cschleiden/go-workflows

★ 501 · Go · MIT · updated Jun 2026

Embedded durable workflows for Golang similar to DTFx/Cadence/Temporal

A durable workflow engine you embed directly in your Go process, backed by SQLite, MySQL, Postgres, or Redis. No separate server to run — your Go binary IS the orchestrator. Built on the same event-sourcing model as Temporal and DTFx, so you get replay-safe deterministic workflows without deploying a cluster.

The embedded model is the main appeal: if you don't need Temporal's scale, you skip its operational overhead entirely and just add a dependency. The static analyzer (in the `analyzer/` directory) catches non-deterministic code at compile time — using `map` iteration or `select` inside a workflow is a build error, not a runtime surprise. Backend choice is genuinely flexible: SQLite for dev/testing, Postgres/MySQL for production, Redis if you need horizontal scale, all behind the same interface. The test infrastructure is solid — `workflowtester` lets you unit test workflow logic without spinning up any backend.

501 stars in 4 years suggests limited production adoption, which means you're largely on your own when you hit edge cases. The determinism constraint leaks into everyday Go code — no `map` range, no `select`, no goroutines outside `workflow.Go` — and there's no escape hatch; you have to restructure code that would be natural Go elsewhere. The diagnostic UI (in `diag/app/`) is a pre-built React bundle checked into the repo, so it's frozen in time and won't get updates as the rest of the project evolves. Versioning story for long-running workflows (where the workflow definition changes mid-execution) is not prominently documented, which is the hard problem in any durable workflow system.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →