The vNext workflow runtime is a .NET-based orchestration system built with Clean Architecture and DDD. It ships two API hosts:
- Orchestration API: client-facing workflow/instance operations
- Execution API: internal task execution and background processing
- .NET 10 SDK (10.0.101 or later)
- Docker (for container builds)
If you're building with .NET 10 for the first time, run the setup script once:
macOS/Linux:
./scripts/setup-netstandard-ref.shWindows:
.\scripts\setup-netstandard-ref.ps1This installs the NETStandard.Library.Ref targeting pack required by PostSharp. See .NET 10 Setup Guide for details.
dotnet restore
dotnet buildStart with Docker (recommended):
cd etc/docker
./run-docker.shLocal development (no Docker):
dotnet run --project orchestration/BBT.Workflow.Orchestration.HttpApi.Host
dotnet run --project execution/BBT.Workflow.Execution.HttpApi.Hostorchestration/: Orchestration API hostexecution/: Execution API hostworkers/: Inbox/Outbox workerssrc/: Domain, Application, Infrastructure, shared libsetc/: Docker, Dapr, and environment configsdocs/: developer documentation
docs/getting-started.mddocs/architecture/overview.mddocs/implementation/application-services.mddocs/implementation/remote-routing-and-discovery.md
- Orchestration:
http://localhost:4201/health - Execution:
http://localhost:4202/health - Use a non-root user for better security
This approach ensures that production images remain small and secure while development images include all necessary debugging tools.
To run the script on MacOS, you need to install PowerShell. You can find the official documentation for installing PowerShell on MacOS here.
If you encounter the following error during compilation:
POSTSHARP : error : error: Unhandled exception (PostSharp.Compiler.Hosting.CommandLine.dll 2025.1.10 release | .NET 9.0.11 (Arm64)): Requested targeting pack NETStandard.Library.Ref, version=2.1.0 is not installed in
Solution:
-
First, clean the
binandobjfolders. You can use one of the following methods:Option A - Using shell command (Linux/macOS):
find . -type d \( -name bin -o -name obj \) -exec rm -rf {} + 2>/dev/null
Option B - Using PowerShell script (Windows/macOS with PowerShell):
./delete-bin-obj.ps1
-
Then, rebuild the project:
dotnet clean dotnet restore dotnet build
This issue typically occurs when there are stale build artifacts that conflict with PostSharp's targeting pack resolution.
This project is licensed under the MIT License - see the LICENSE file for details.