Repository navigation
Release v1.33.0
Cratis.Orleans now includes a durable, grain-based workflow engine. A workflow is a graph defined as data that runs as a durable process: each run rebuilds its state from its own journal of facts when it activates, so it survives silo restarts and moves between silos.
Added
- Workflow engine in
Cratis.Orleans: a graph of Trigger, Action, Decision, Wait, Approval, ForEach and Join nodes with named outlets and per-node retry policy, versioned definitions with admission policies, run and workflow grains, and node work executed as jobs. (#167) IWorkflowRunJournal, with a journal on Orleans grain storage so workflows run without Chronicle.- A sweep and a per-run timer and reminder, so waits and retries resume after a restart.
AddCratisOrleansWorkflows()andCratisOrleansOptions.Workflowsto host workflows.CratisOrleansOptions.Local(), a database-free configuration with localhost clustering and in-memory grain storage, for development and embedded hosts.- Chronicle adapter in
Cratis.Orleans.Chronicle: an event-sourced journal, event, state-machine, schedule and manual triggers, signals, run listing and open-wait read models, andAddEventSourcedWorkflows(). - Documentation for workflows: https://github.com/Cratis/Orleans/blob/main/Documentation/concepts/workflows.md