|
| 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