Skip to content

Release v1.33.0

Choose a tag to compare

@github-actions github-actions released this 01 Nov 20:42
708ec14

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() and CratisOrleansOptions.Workflows to 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, and AddEventSourcedWorkflows().
  • Documentation for workflows: https://github.com/Cratis/Orleans/blob/main/Documentation/concepts/workflows.md