Extract product-agnostic workflow engine from Ablera.Serdica.Workflow into standalone StellaOps.Workflow.* libraries targeting net10.0. Libraries (14): - Contracts, Abstractions (compiler, decompiler, expression runtime) - Engine (execution, signaling, scheduling, projections, hosted services) - ElkSharp (generic graph layout algorithm) - Renderer.ElkSharp, Renderer.ElkJs, Renderer.Msagl, Renderer.Svg - Signaling.Redis, Signaling.OracleAq - DataStore.MongoDB, DataStore.PostgreSQL, DataStore.Oracle WebService: ASP.NET Core Minimal API with 22 endpoints Tests (8 projects, 109 tests pass): - Engine.Tests (105 pass), WebService.Tests (4 E2E pass) - Renderer.Tests, DataStore.MongoDB/Oracle/PostgreSQL.Tests - Signaling.Redis.Tests, IntegrationTests.Shared Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
921 B
921 B
Tutorial 7: Shared Support Helpers
When building many workflows for the same domain (e.g., 50+ policy change workflows), extract reusable components into a support helper class.
What to Extract
| Component | Example |
|---|---|
| Address constants | LegacyRabbitAddress, HttpAddress — centralized routing |
| Workflow references | WorkflowReference — for SubWorkflow/ContinueWith targets |
| Payload builders | Static methods returning WorkflowExpressionDefinition |
| State initializers | Base state + override pattern |
| Flow extensions | Extension methods on WorkflowFlowBuilder<T> for common sequences |
C#-Only Tutorial
This tutorial has no JSON equivalent — it covers C# code organization patterns.
Next
Tutorial 8: Expressions — path navigation, functions, and operators.