Files
managing-apps/assets/documentation/Workers processing/01-Overall-Architecture.md

2.1 KiB

Overall System Architecture

This diagram shows the complete system architecture with API Server Cluster, Compute Worker Cluster, and their interactions with the database and external services.

graph TB
    subgraph "Monorepo Structure"
        subgraph "API Server Cluster"
            API1[Managing.Api<br/>API-1<br/>Orleans]
            API2[Managing.Api<br/>API-2<br/>Orleans]
            API3[Managing.Api<br/>API-3<br/>Orleans]
        end
        
        subgraph "Compute Worker Cluster"
            W1[Managing.Compute<br/>Worker-1<br/>8 cores, 6 jobs]
            W2[Managing.Compute<br/>Worker-2<br/>8 cores, 6 jobs]
            W3[Managing.Compute<br/>Worker-3<br/>8 cores, 6 jobs]
        end
        
        subgraph "Shared Projects"
            APP[Managing.Application<br/>Business Logic]
            DOM[Managing.Domain<br/>Domain Models]
            INFRA[Managing.Infrastructure<br/>Database Access]
        end
    end
    
    subgraph "External Services"
        DB[(PostgreSQL<br/>Job Queue)]
        INFLUX[(InfluxDB<br/>Candles)]
    end
    
    subgraph "Clients"
        U1[User 1]
        U2[User 2]
        U1000[User 1000]
    end
    
    U1 --> API1
    U2 --> API2
    U1000 --> API3
    
    API1 --> DB
    API2 --> DB
    API3 --> DB
    
    W1 --> DB
    W2 --> DB
    W3 --> DB
    
    W1 --> INFLUX
    W2 --> INFLUX
    W3 --> INFLUX
    
    API1 -.uses.-> APP
    API2 -.uses.-> APP
    API3 -.uses.-> APP
    W1 -.uses.-> APP
    W2 -.uses.-> APP
    W3 -.uses.-> APP
    
    style API1 fill:#4A90E2
    style API2 fill:#4A90E2
    style API3 fill:#4A90E2
    style W1 fill:#50C878
    style W2 fill:#50C878
    style W3 fill:#50C878
    style DB fill:#FF6B6B
    style INFLUX fill:#FFD93D

Components

  • API Server Cluster: Handles HTTP requests, creates jobs, returns immediately
  • Compute Worker Cluster: Processes CPU-intensive backtest jobs
  • PostgreSQL: Job queue and state management
  • InfluxDB: Time-series data for candles
  • Shared Projects: Common business logic used by both API and Compute services