Proxus is built on a distributed edge architecture designed for scalability, performance, and resilience. The architecture consists of the following key components:
Hub: A Blazor server application (C# .NET 9) that serves as the central management and control point for the Proxus platform. The Hub provides a web-based interface for:
Device Management: Adding, configuring, and managing devices.
Data Flow Configuration: Defining data collection rules, processing pipelines, and data destinations.
User Management: Managing user accounts and permissions.
Monitoring and Alerting: Monitoring the health and performance of the platform and generating alerts when issues occur.
Data Visualization: Creating dashboards and reports to visualize data.
Edge Services: Lightweight, distributed services that run at the edge, close to the data source. Edge Services are deployed as Docker containers for easy deployment and management. They are responsible for:
Data Acquisition: Collecting data from connected devices using various protocols.
Data Processing: Transforming, filtering, and aggregating data.
Local Analytics: Performing real-time analysis and generating insights.
Data Buffering: Buffering data in case of network connectivity issues.
Secure Communication: Encrypting data and authenticating with the Hub.
Communication between the Hub and Edge Services is facilitated by NATS Jetstream, a high-performance, distributed messaging system. NATS Jetstream provides:
Reliable Messaging: Ensures that messages are delivered even in the event of network outages.
Scalability: Supports a large number of concurrent connections and high message throughput.
Low Latency: Minimizes the delay in message delivery.
Edge Services connect to the Hub using leaf nodes, which provide a secure and efficient way to connect to the central NATS cluster.
Device Configuration: A user configures a device within the Proxus Hub, specifying the following parameters:
Protocol: The protocol used to communicate with the device (e.g., Modbus TCP, OPC UA).
Connection Parameters: The connection details for the device (e.g., IP address, port number).
Data Sampling Rate: The frequency at which data is collected from the device.
Data Destination: The destination for the collected data (e.g., TimescaleDB, an external API).
Edge Service Deployment: The device configuration is deployed to an Edge Service that is located near the device.
Data Collection: The Edge Service connects to the device using the specified protocol and collects data at the configured sampling rate.
Data Processing: The Edge Service processes the collected data using configured rules and User-Defined Functions (UDFs). This can include:
Filtering out irrelevant data.
Converting data to a standard format.
Aggregating data over time.
Performing calculations on the data.
Data Storage: The processed data is stored in TimescaleDB.
Data Visualization and Analysis: Users can visualize and analyze the data using the Proxus Hub’s built-in dashboards or external tools connected to TimescaleDB.