Skip to content

Commit 6789525

Browse files
committed
WIP: Starting to design a Software Architecture Chart
1 parent 0c949bb commit 6789525

1 file changed

Lines changed: 75 additions & 0 deletions

File tree

SoftwareArchitecture.md

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# Software Architecture
2+
3+
This chart is a high-level overview of the software architecture of the project.
4+
5+
_It is a work in progress and will be updated as the project progresses._
6+
7+
```mermaid
8+
flowchart TB
9+
subgraph D["Data & Analytics"]
10+
S["S3-Storage"]
11+
12+
DS["
13+
Data Scrapers
14+
Active Matches, HLTV-Stream, Metadata
15+
"]
16+
DS -- Match data --> S
17+
DS -- Add to Validate Queue --> RMQV
18+
19+
H["Housekeeper"]
20+
H == SCAN for unprocessed old matches === S
21+
H == Compress and Archive old matches === S
22+
H -- Add to Validate Queue --> RMQV
23+
24+
subgraph rmq["RabbitMQ"]
25+
RMQV["RabbitMQ - Validate Queue"]
26+
RMQI["RabbitMQ - Ingest Queue (Exchange)"]
27+
end
28+
29+
V["Validator & Parser"]
30+
RMQV -- Get from Validate Queue --> V
31+
S -- Match Data --> V
32+
V -- Parsed Match Data --> S
33+
V -- Add to Parser Queue --> RMQI
34+
35+
subgraph ingest["Ingest Workers"]
36+
IC["Clickhouse Ingest Worker"]
37+
IP["Postgres Ingest Worker"]
38+
end
39+
40+
subgraph databases["Databases"]
41+
DBC["Clickhouse"]
42+
DBP["PostgreSQL"]
43+
end
44+
45+
RMQI -- Get from Ingest Queue --> IC
46+
RMQI -- Get from Ingest Queue --> IP
47+
S -- Parsed Match Data --> IP
48+
S -- Parsed Match Data --> IC
49+
IC -- Ingest Data --> DBC
50+
IP -- Ingest Data --> DBP
51+
end
52+
53+
subgraph T["Telemetry & Metrics"]
54+
%% Not designed yet
55+
P["Prometheus"]
56+
G["Grafana"]
57+
P -- Metrics --> G
58+
end
59+
60+
subgraph B["Backend"]
61+
%% Not designed yet
62+
end
63+
DBC -- Application Data --> B
64+
DBP -- Application Data --> B
65+
66+
subgraph AP["Admin Panel"]
67+
%% Not designed yet
68+
end
69+
B -- Application Data --> AP
70+
71+
subgraph F["Public Frontend"]
72+
%% Not designed yet
73+
end
74+
B -- Application Data --> F
75+
```

0 commit comments

Comments
 (0)