Proxus Architecture
Explore the high-performance, scalable, and reliable architecture of the Proxus platform.
Proxus Architecture
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
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.
Data Storage
Data storage is handled by TimescaleDB, a time-series database built on PostgreSQL. TimescaleDB is optimized for:
- High-Volume Data Ingestion: Supports high write throughput for storing large amounts of time-series data.
- Efficient Querying: Provides optimized query performance for analyzing time-series data.
- Data Retention Policies: Allows users to define data retention policies to automatically delete old data.
- Data Compression: Supports data compression to reduce storage costs.
Data Flow - Detailed Explanation
- 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.
Architecture Highlights
Proxus is built on modern architectural principles that ensure high performance, scalability, and reliability:
- Actor Model: For concurrent and distributed processing
- Message-Based Communication: Ensuring loose coupling and scalability
- Stateless Design: Enabling true horizontal scalability
- SIMD Optimization: For high-performance data processing
- Container-Native: Full Docker and Kubernetes support
Next: Key Features Previous: What is Proxus?