50 lines
2.6 KiB
Markdown
50 lines
2.6 KiB
Markdown
# govoplan-workflow
|
|
|
|
<!-- govoplan-repository-type:start -->
|
|
**Repository type:** module (platform).
|
|
<!-- govoplan-repository-type:end -->
|
|
|
|
`govoplan-workflow` owns process orchestration for GovOPlaN.
|
|
|
|
The module should execute configurable state machines and command handoffs
|
|
between modules without importing their implementations. It coordinates cases,
|
|
tasks, forms, files, templates, mail, appointments, payments, and records
|
|
through capabilities, events, commands, and DTOs.
|
|
|
|
Workflow exposes a workflow-specific node library, a full definition editor,
|
|
validation APIs, tenant-isolated definitions, and immutable graph revisions.
|
|
Activation pins the exact revision that future instances will execute. It uses
|
|
Core's domain-neutral definition graph contract, but applies Workflow
|
|
constraints: exactly one trigger, at least one outcome, governed configuration
|
|
fields, connected nodes, and permitted loops for correction and retry paths.
|
|
Dataflow uses the same graph contract with its own acyclic transformation
|
|
library.
|
|
|
|
The executable runtime persists revision-pinned instances, append-only
|
|
transition evidence, resumable human handoffs, retries, cancellation, and
|
|
stable external output references. Dataflow nodes enqueue work through
|
|
Dataflow's lifecycle capability; Workflow never imports Dataflow internals.
|
|
Core's periodic worker reconciles linked runs after re-resolving the stored
|
|
automation principal, while the operator surface exposes progress, review
|
|
actions, evidence references, and direct navigation to Dataflow results.
|
|
|
|
Definitions can be complete flows or non-runnable templates at system,
|
|
tenant, group, or user scope. Policy resolves whether a definition can be
|
|
viewed, edited, started, reused, derived, or automated and returns the ordered
|
|
source path shown in the editor. Derivation copies an immutable graph revision
|
|
and records its hash, node-library version, source scope, actor, Policy
|
|
decision, and effective ancestor limits.
|
|
|
|
The start-node library distinguishes explicit user, API, scheduled, event, and
|
|
parent-workflow starts. Manual starts and Dataflow/human handoffs are
|
|
operational. The other trigger and generic capability nodes remain explicit
|
|
definition contracts until their event/schedule dispatchers and versioned
|
|
operation providers are implemented.
|
|
|
|
See [docs/CONCEPT.md](docs/CONCEPT.md) for the complete module concept.
|
|
|
|
There is a BPMN component playing a major role here. Maybe this needs to
|
|
become a separate module. It is quite viable to think about workflow
|
|
modelling (and consequently import and export) in terms of BPMN, permitting
|
|
a standardized configuration of the system.
|