Skip to content

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.