Virtufin Platform Specifications¶
This site contains the formal specifications for the Virtufin microservices platform — a real-time financial market data pipeline built on .NET 10.0, Dapr, and Kubernetes.
Architecture¶
graph TB
subgraph External["External"]
BINANCE["Binance"]
ALPACA["Alpaca"]
NATS["NATS"]
WS["WebSocket<br/>endpoints"]
end
subgraph Platform["Virtufin Platform"]
subgraph Services["Core Services"]
GW["API Gateway<br/>(virtufin-api)"]
WM["WorkManager<br/>(worker-management)"]
WSM["WebSocket Manager<br/>(websocket-proxy)"]
end
subgraph Infra["Infrastructure"]
DAPR["Dapr Sidecars"]
REDIS["Valkey / Redis"]
K8S["Kubernetes"]
end
end
subgraph Consumers["Consumers"]
CSHARP["C# Client"]
PYTHON["Python Client"]
TS["TypeScript Client"]
end
GW -- "gRPC (h2c)" --> WM
GW -- "gRPC (h2c)" --> WSM
WM --> DAPR
WSM --> DAPR
GW --> DAPR
DAPR --> REDIS
WSM -- "WebSocket" --> BINANCE
WSM -- "WebSocket" --> ALPACA
BINANCE --> WSM
ALPACA --> WSM
CSHARP -- "gRPC / gRPC-Web" --> GW
PYTHON -- "gRPC" --> GW
TS -- "gRPC-Web" --> GW
K8S --- Services
Dependency Map¶
graph TD
CC["cross-cutting"]
PT["pubsub-topics"]
SC["scenarios"]
CDT["core-data-types"]
AG["api-gateway"]
WM["worker-management"]
WSP["websocket-proxy"]
SDK["multi-sdk"]
TUI["terminal-ui"]
DEP["deployment"]
CICD["ci-cd-tooling"]
CC --> AG
CC --> WM
CC --> WSP
CC --> DEP
CC --> CICD
PT --> SC
AG --> SC
AG --> SDK
WM --> SDK
WSP --> SDK
AG --> TUI
WM --> TUI
WSP --> TUI
DEP --> AG
DEP --> WM
DEP --> WSP
CICD --> SDK
Note: NATS in the diagram above refers to
NatsObservable<T>inVirtufin.Data— a library-level reactive data source, not a platform infrastructure component. Workers running under the WorkManager use the API gateway'sPubsub.SubscribeRPC for pub/sub, not a direct NATS connection.
Specifications¶
| # | Specification | Requirements | Description |
|---|---|---|---|
| 1 | Cross-cutting | 11 | Shared infrastructure, API-mediated pub/sub, observability, resilience, security |
| 2 | Pub/Sub Topics | 19 | Topic naming taxonomy, market/scenario worlds, CloudEvents envelope, state-key conventions |
| 3 | Scenarios | 9 | Scenario registry triplets, named hypothetical worlds, lifecycle statuses |
| 4 | Core Data Types | 5 | EAV framework, Variant, FlatBuffers, reactive observables |
| 5 | API Gateway | 11 | Dynamic gRPC discovery, JSON transcoding, distributed state, pub/sub streaming |
| 6 | Worker Management | 23 | Polyglot worker lifecycle, event-driven processing, competing consumers, worker engines |
| 7 | WebSocket Proxy | 12 | External WS connections, pub/sub routing, distributed ownership, auto-reconnect |
| 8 | Multi-SDK | 8 | C#/Python/TypeScript client SDKs from proto contracts |
| 9 | Client Testing | — | Cross-language client test parity matrix |
| 10 | Terminal UI | 16 | Operator dashboard: worker/connection/event management, multi-context, live streaming, AI assistant |
| 11 | Deployment | 8 | Helm chart, Dapr components, per-service versioning |
| 12 | CI/CD Tooling | 6 | Doc generation, gRPC client publishing, reusable workflows |
Total: 128 requirements across 11 normative specifications (plus the client-testing parity matrix).