Skip to content

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"]
    CDT["core-data-types"]
    AG["api-gateway"]
    WM["worker-management"]
    WSP["websocket-proxy"]
    SDK["multi-sdk"]
    DEP["deployment"]
    CICD["ci-cd-tooling"]

    CC --> AG
    CC --> WM
    CC --> WSP
    CC --> DEP
    CC --> CICD
    AG --> SDK
    WM --> SDK
    WSP --> SDK
    DEP --> AG
    DEP --> WM
    DEP --> WSP
    CICD --> SDK

Specifications

# Specification Requirements Description
1 Cross-cutting 7 Shared infrastructure, observability, resilience, security
2 Core Data Types 5 EAV framework, Variant, FlatBuffers, reactive observables
3 API Gateway 7 Dynamic gRPC discovery, JSON transcoding, state, pub/sub
4 Worker Management 6 Polyglot worker lifecycle, event-driven processing, locking
5 WebSocket Proxy 6 External WS connections, pub/sub routing, auto-reconnect
6 Multi-SDK 7 C#/Python/TypeScript client SDKs from proto contracts
7 Deployment 8 Helm chart, Dapr components, per-service versioning
8 CI/CD Tooling 6 Doc generation, gRPC client publishing, reusable workflows

Total: 52 requirements across 8 specifications.