79 lines
2.1 KiB
Markdown
79 lines
2.1 KiB
Markdown
# 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.
|
|
|
|
```mermaid
|
|
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
|
|
|