Deployment
Kubernetes
The WorkManager is deployed as a Kubernetes Deployment with a Dapr sidecar.
Prerequisites
- Kubernetes cluster
- Dapr installed on the cluster
- Valkey (Redis-compatible) for state store and pub/sub
Quick Deploy
helm install virtufin-workmanager ../helm \
--namespace virtufin --create-namespace \
--set workmanager.enabled=true
Configuration
| Env Variable | Default | Description |
|---|---|---|
HttpPort |
5001 |
HTTP port |
GrpcPort |
5102 |
gRPC port |
Logging__LogLevel__Default |
Information |
Minimum log level |
Health Checks
/health— Service health (used by Kubernetes liveness/readiness probes)/healthz— Dapr health check endpoint
Rolling Updates
Worker recovery runs automatically on startup via the WorkManagerRecoveryHostedService. The readiness probe gates traffic until recovery completes.
Known Limitations
Dapr gRPC App Health Checks Not Supported
When using Dapr with app-protocol: grpc, the Dapr sidecar probes the application via the dapr.proto.runtime.v1.AppCallbackHealthCheck gRPC service. The Dapr .NET SDK does not currently provide a server-side implementation of this service. As a result, Dapr app health checks are disabled (dapr.io/enable-app-health-check: false).
Kubernetes liveness and readiness probes (/health endpoint) continue to handle pod health monitoring. Future improvement: implement the Dapr AppCallback gRPC service to enable Dapr's soft health check mechanism for pausing work delivery during unhealthy states.