Files
git.stella-ops.org/src/Workflow
master ca35f66830 backport: merge Serdica workflow abstractions and contracts improvements
Backport generic improvements from Serdica workflow engine to StellaOps:

Abstractions:
- Add IWorkflowActorRoleResolver interface and NullWorkflowActorRoleResolver
  default implementation for server-side actor identity resolution
- Add expression-based Call overloads to WorkflowFlowBuilder (6 new methods
  accepting WorkflowExpressionDefinition for payload instead of Func<> factory)
- Fix failure handler compilation: preserve empty handlers (0 steps) as empty
  sequences instead of null, allowing "ignore failure and continue" semantics
- Add explanatory comments to WorkflowRegistrationAbstractions for JSON number
  normalization logic

Contracts:
- Add NextTasks and WorkflowState to StartWorkflowResponse so callers can
  see immediate next tasks after starting a workflow
- Add WorkflowInstanceId, NextTasks, and WorkflowState to
  WorkflowTaskCompleteResponse for richer task completion feedback

Transport: verified Transport.GraphQL, Transport.Http, Transport.Microservice,
and Transport.LegacyRabbit are engine-embedded plugins (no separate directories
to add/remove). ElkSharp library confirmed present at src/__Libraries/.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 13:59:09 +03:00
..

Workflow

Container(s): stellaops-workflow Slot: (compose inline) | Port: 8080 | Consumer Group: workflow Resource Tier: medium

Purpose

The Workflow Engine provides a general-purpose workflow runtime for orchestrating multi-step release and operational processes. It supports workflow definition deployment, runtime execution, signal-driven task transitions, dead-letter handling, and authorization-gated task progression. It is the backbone for release promotion workflows.

API Surface

  • workflow (via Router) — workflow definition CRUD, instance lifecycle (start/signal/cancel), task queries, dead-letter management, projection queries (/api/workflow prefix)

Storage

PostgreSQL schema workflow (via ConnectionStrings:WorkflowPostgres, WorkflowBackend:Postgres)

Background Workers

  • Signal pump hosted service — processes workflow signals from the event bus
  • Retention hosted service — cleans up completed workflow instances
  • WorkflowDefinitionBootstrap — deploys built-in workflow definitions on startup