Skip to content

Commit 4e85f09

Browse files
committed
Write first Software Architecture Draft
1 parent 0c949bb commit 4e85f09

1 file changed

Lines changed: 80 additions & 0 deletions

File tree

SoftwareArchitecture.md

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
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 --> MBV
18+
DS -- Publish Events --> MBPS
19+
20+
H["Housekeeper"]
21+
H == Scan for unprocessed old Matches === S
22+
H == Compress and Archive old Matches === S
23+
H -- Add to Validate Queue --> MBV
24+
25+
subgraph MB["Message Broker"]
26+
MBV["Validate Queue"]
27+
MBI["Ingest Queue (Exchange)"]
28+
MBPS["Pub/Sub"]
29+
end
30+
31+
V["Validator & Parser"]
32+
MBV -- Get from Validate Queue --> V
33+
S -- Match Data --> V
34+
V -- Parsed Match Data --> S
35+
V -- Add to Parser Queue --> MBI
36+
37+
subgraph ingest["Ingest Workers"]
38+
IP["DBMS 1 Ingest Worker"]
39+
IC["DBMS 2 Ingest Worker"]
40+
end
41+
42+
subgraph databases["Databases"]
43+
DBP["DBMS 1"]
44+
DBC["DBMS 2"]
45+
end
46+
47+
MBI -- Get from Ingest Queue --> IC
48+
MBI -- Get from Ingest Queue --> IP
49+
S -- Parsed Match Data --> IP
50+
S -- Parsed Match Data --> IC
51+
IC -- Ingest Data --> DBC
52+
IP -- Ingest Data --> DBP
53+
end
54+
55+
subgraph T["Telemetry & Metrics"]
56+
%% Not designed yet
57+
P["Prometheus"]
58+
G["Grafana"]
59+
P -- Metrics --> G
60+
end
61+
62+
subgraph B["Backend"]
63+
%% Not designed yet
64+
end
65+
DBC -- Application Data --> B
66+
DBP -- Application Data --> B
67+
68+
subgraph AP["Admin Panel"]
69+
%% Not designed yet
70+
end
71+
B -- Application Data --> AP
72+
73+
subgraph F["Public Frontend"]
74+
%% Not designed yet
75+
end
76+
B -- Application Data --> F
77+
78+
SU["Live Event Subscribers"]
79+
MBPS == Subscribe ==>SU
80+
```

0 commit comments

Comments
 (0)