Files
git.stella-ops.org/src/Workflow
master ff4c721eda feat: port WorkflowStore plugins (Oracle, Mongo, Postgres) from Serdica
Ported 3 database backend plugins with namespace adaptation:
- Oracle: EF Core-based store with AQ signaling wiring (2 files)
- MongoDB: Delegates to DataStore.MongoDB extension method (2 files)
- PostgreSQL: Delegates to DataStore.PostgreSQL extension method (2 files)

Implementation files already exist in __Libraries DataStore projects
(ported in earlier commits). These plugins are thin IDependencyInjectionRoutine
wrappers that enable dynamic plugin loading via the workflow plugin system.

Also fleshed out the stub OracleWorkflowDataStoreExtensions to register
WorkflowDbContext, OracleWorkflowRuntimeStateStore, and
OracleWorkflowHostedJobLockService.

All namespaces converted from Ablera.Serdica to StellaOps.
Plugin interface adapted from IPluginServiceRegistrator to IDependencyInjectionRoutine.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 14:56:02 +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