Skip to content
Snippets Groups Projects
Commit b24a5974 authored by David Trattnig's avatar David Trattnig
Browse files

docs: simple diagram on architecture

parent f879048f
No related branches found
No related tags found
No related merge requests found
Pipeline #2819 passed
...@@ -11,6 +11,73 @@ check out the documentation at [docs.aura.radio](https://docs.aura.radio/) ...@@ -11,6 +11,73 @@ check out the documentation at [docs.aura.radio](https://docs.aura.radio/)
To learn more about Automated Radio go to [aura.radio](https://aura.radio). To learn more about Automated Radio go to [aura.radio](https://aura.radio).
## Overview
The following diagram gives an simplified overview on the architecture.
```mermaid
flowchart LR
api-- GET calendar -->steering[Steering API]
api-- GET playlist -->tank[Tank API]
ea[Engine API]
mail[Mailserver]
events-- on_boot\non_sick\non_resurrect -->monitor[Monitor]
events-- on_play\non_fallback_active -->clock[Clock]
events-- on_fallback_active\non_sick\non_resurrect -->mailer[Mailer]
clock-- POST clock_data -->ea
monitor-- PING heartbeat -->monserver[Monitoring Server]
monitor-- POST health_data -->ea
mailer-- send mail -->mail
mixer-- UNIX SOCKET -->engine_core
subgraph external
ea
mail
monserver
engine_core
steering
tank
db[(PostgreSQL DB)]
end
subgraph engine
engine_instance[Engine]-.-oplayer & events & scheduler
scheduler-- control\ncommand\ntimer -->player[Player]
player-- control action -->mixer
events[Event Dispatcher *]
subgraph scheduling
api[Fetch & Cache API]
timetable<-->api
timetable<-->db
scheduler<-->timetable[Timetable Management ***]
scheduler-- cycle -->scheduler
end
subgraph core[core]
mixer[Mixer]
end
subgraph plugins
clock
monitor
mailer
end
end
style external fill:#FFF
style ea fill:#FFF,stroke:#333,stroke-width:1px
style steering fill:#FFF,stroke:#333,stroke-width:1px
style tank fill:#FFF,stroke:#333,stroke-width:1px
style monserver fill:#FFF,stroke:#333,stroke-width:1px
style engine_core fill:#FFF,stroke:#333,stroke-width:1px
style mail fill:#FFF,stroke:#333,stroke-width:1px
```
- **Event Dispatcher**: Events are issued and consumed in multiple locations of Engine. The diagram shows only a few ones, in order to support the overview.
- **Mailer**: This module notifies on incidents and fallbacks via mail. This is not a sophisticated monitoring solution and will be [replaced](https://gitlab.servus.at/aura/engine/-/issues/109) by [Prometheus Metrics](https://gitlab.servus.at/aura/aura/-/issues/98) and a dedicated [Notification Service for Programme Coordinators](https://gitlab.servus.at/aura/aura/-/issues/139).
- **Timetable Management**: Currently a database is used for caching and high-availability purposes. This is [subject to changes](https://gitlab.servus.at/aura/engine/-/issues/100) in subsequent releases.
## Prerequisites ## Prerequisites
Before you begin, ensure you have met the following requirements: Before you begin, ensure you have met the following requirements:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment