Skip to content

Getting Started

Prerequisites

  • .NET 10 SDK
  • Access to the private Virtufin registries (Virtufin.* NuGet packages).
  • Python 3 (for the deployment scripts -- virtufin-api, the Python gRPC gateway client, and virtufin-naming, which the scripts build every topic with, need to be importable; run dotnet restore once so NameRegistry.discover finds the imported fragments in the NuGet cache).

Run the tests

dotnet build Virtufin.PortfolioWorkers.slnx
dotnet test Virtufin.PortfolioWorkers.slnx

Deploy a worker

Each worker directory has its own config/config.json + scripts/*.py deployment wrappers (thin wrappers over @common/scripts/, the same pattern market-data-workers, execution-workers and strategy-workers use):

cd <Worker>
python3 scripts/build_managed.py --csproj src/Virtufin.Worker.<Worker>/Virtufin.Worker.<Worker>.csproj
python3 scripts/publish.py --worker-nupkg /tmp/worker-out/Virtufin.Worker.<Worker>.nupkg
python3 scripts/create_worker.py --api-client-host localhost --api-client-port 5002

Venue credentials are worker secrets (WorkManager 0.21+), referenced from the worker's config, never written into config.json.

Other lifecycle scripts (@common/scripts/list_workers.py, start_worker.py, stop_worker.py, delete_worker.py, recover_workers.py, get_worker_history.py, schedule_trigger.py) take --config <path> directly.