This is a set of examples for the (unofficial) Haskell SDK.
Most examples assume a Nix development shell and running Temporal development server; see the usage section below for details.
- hello - basic examples
- activity - define an activity and execute it from a workflow
- activity_with_boilerplate - same as above, without using Template Haskell convenience utilities
- child_workflow - execute a workflow that spawns a child workflow
- cron - execute a workflow once per minute
This cookbook depends on Nix; if you don't already have Nix installed, please follow these instructions to do so.
Warning
--accept-flake-config
should never be passed to a nix
command that
executes untrusted code; a malicious actor could use it to
execute commands as root!
Always validate the nixConfig
in a project's flake.nix
beforehand; in
this case, we're using it to provide cached Garnix CI
artifacts.
Unless otherwise specified, all examples require a running Temporal development server; drop into a Nix development shell and spawn one:
$ nix develop --accept-flake-config
$ temporal server start-dev
The development server web UI should now be available at localhost:8233
.
Separately, drop into a Nix development shell from which the examples may be compiled and executed; to run the basic activity example:
$ nix develop --accept-flake-config
$ cabal run hello:activity_with_boilerplate
Upon completion, navigate to the web UI and observe that a workflow of type
greeting
has completed: