virtufin-workmanager

Virtufin WorkManager

Build Status NuGet PyPI npm

📖 Documentation: workmanager.doc.virtufin.com

Worker lifecycle management and code execution service with Dapr integration.

  • Worker lifecycle management (create, start, stop, delete)
  • Code execution engines: Python, C# Source, DotNet DLL
  • Pub/sub-based worker invocation via Dapr
  • State store persistence for worker configurations and history
  • gRPC API with reflection
virtufin-workmanager/
├── src/
│ ├── Virtufin.WorkManager/ # .NET service (gRPC server, worker engine)
│ ├── Virtufin.WorkManager.Client/ # .NET client NuGet package
│ ├── Virtufin.WorkManager.Protos/ # Protobuf definitions (workmanager.proto)
│ ├── Virtufin.Worker.DevKit/ # Worker base classes (WorkerBase, CommandWorker)
│ ├── Virtufin.WorkManager.Engines/ # Engine registry
│ ├── Virtufin.WorkManager.Engine.*/ # Engine implementations (Python, CSharpSource, DotNetDll)
│ ├── python/virtufin/workmanager/ # Python client library
│ └── typescript/src/ # TypeScript client library
├── tests/
│ ├── python/ # Python client tests
│ ├── typescript/ # TypeScript client tests
│ └── Virtufin.WorkManager.*.Tests/ # .NET tests
├── docs/ # MkDocs documentation
├── deploy/ # Deployment configs
├── versions.env # Version pin
└── AGENTS.md # Agent documentation

All deployment infrastructure is managed in dedicated repositories.

Run services natively with Dapr sidecars. No Docker containers for services. Requires Dapr CLI, .NET SDK, and Redis.

git clone https://git.haenerconsulting.com/virtufin/deploy-local.git
cd deploy-local
./scripts/deploy_workmanager.sh

See deploy-local for full documentation.

Build and run from source via Docker Compose.

git clone https://git.haenerconsulting.com/virtufin/docker-compose.git
cd docker-compose
./scripts/deploy_workmanager.dev.sh

Run pre-built Harbor images via Docker Compose.

git clone https://git.haenerconsulting.com/virtufin/docker-compose.git
cd docker-compose
./scripts/deploy_workmanager.prod.sh

See docker-compose for full documentation.

Deploy with the Virtufin Helm chart. Requires Dapr installed on the cluster.

helm repo add virtufin https://helm.haenerconsulting.com/virtufin/helm
helm install virtufin virtufin/virtufin \
--namespace virtufin \
--create-namespace \
--set stateStore.host=<redis-host> \
--set pubsub.host=<redis-host>

See helm for all configurable values.

Protocol Port Description
HTTP 25001 Health checks, management
gRPC 25002 Worker lifecycle operations
  • .NET 10.0 SDK or later
  • Dapr CLI (for local development)
dotnet build
dotnet test

Proprietary - Virtufin