System Architecture
System Architecture
Below is a high-level architecture diagram of the system:
%% System Architecture Diagram for NextGen Gateway
%% High-level system view (no Runtime internals)
flowchart TD
subgraph User["User"]
UI["Web Interface"]
end
subgraph Core["Core"]
SH["Service Hub"]
RT["Runtime"]
LS["Log Service"]
TS["Timeseries DB (QuestDB)"]
end
%% User interactions
UI -- REST API (HTTP) --> SH
%% Logging
RT -- TCP (Log) --> LS
SH -- TCP (Log) --> LS
SH <-- TCP (Log Query) --> LS
%% Runtime control/config
SH -- HTTP (Config/Control) --> RT
%% Timeseries interactions
RT -- ILP/SQL (Datapoint value Storage) --> TS
SH <-- SQL (Datapoint values Query) --> TS
%% Notes
UI --- UI_NOTE["Note: UI interacts with Service Hub for data/config"]
SH --- SH_NOTE["Note: Manages config and proxies to Runtimes"]
LS --- LS_NOTE["Note: Queried by Service Hub for logs"]
TS --- TS_NOTE["Note: Stores datapoint values"]The NextGen Gateway system is composed of four main elements:
- Service Hub: Responsible for configuration management and acts as a proxy for interacting with multiple runtimes and other services. Provides a REST API for user interaction.
- Runtime: Handles multiple plugins for high-speed data processing. Each runtime connects to the Service Hub via HTTP to announce itself, receive configuration and can connect to other runtimes.
- Web Interface: Interacts with the Service Hub to fetch data, display information, and load configurations.
- Log Service: Receives logs via TCP from all services and provides a search feature (also via TCP) to the Service Hub.
- Timeseries Database: Stores datapoint values for historical analysis. It connects to the Service Hub via HTTP for the values to be queried.