- Overview
- Architecture Diagram
- Core Components
- Entity Model
- Data Flow
- Offline Operation
- Scalability
- Security Architecture
- Deployment Architectures
- Configuration Files
- Monitoring & Diagnostics
- Performance Considerations
- Upgrade Strategy
- Next Steps
Overview
IndustryOS Edge is designed as a lightweight, standalone instance of the IndustryOS Platform, optimised for edge computing scenarios. It synchronises with IndustryOS Cloud Platform whilst enabling complete local operation during network outages.
Architecture Diagram
Core Components
Edge Core Service
Responsibilities:
- Device connectivity management
- Local telemetry processing
- Dashboard rendering
- User authentication
- API endpoint hosting
Technology Stack:
- Language: Java 11+
- Framework: Spring Boot
- Actor System: Akka (for message processing)
- Cache: Caffeine (in-memory)
Transport Layer
Handles device protocol connectivity:
Supported Protocols:
- MQTT: Port 1883 (insecure), 8883 (TLS)
- HTTP: Port 8080 (default)
- CoAP: Port 5683 (insecure), 5684 (DTLS)
Features:
- Protocol adapters
- Message validation
- Access token authentication
- Device session management
Rule Engine
Processes incoming messages through configurable rule chains:
Key Nodes:
- Message Type Switch: Routes messages by type (telemetry, attribute, RPC)
- Save to Database: Persists data locally
- Create Alarm: Threshold-based alarm creation
- Push to Cloud: Sends filtered data to cloud platform
- Transform: Data enrichment and transformation
Execution:
- Asynchronous processing
- Actor-based parallelism
- Custom JavaScript/TBEL scripts
Dashboard Engine
Renders real-time dashboards:
Capabilities:
- Widget library (charts, tables, maps, controls)
- Custom HTML/CSS/JavaScript widgets
- Real-time websocket updates
- Mobile-responsive design
Data Sources:
- Live telemetry streams
- Historical data queries
- Entity relationships
- Alarm feeds
Cloud Sync Service
Manages bidirectional synchronisation with cloud:
Architecture:
- gRPC Client: Maintains persistent connection
- Message Queue: Buffers messages during offline periods
- Sync Scheduler: Periodic entity synchronisation
- Conflict Resolution: Handles concurrent edits
Sync Protocol:
- Edge establishes gRPC connection to cloud (port 7070)
- Authenticates with edge key/secret
- Subscribes to cloud events (entity updates, config changes)
- Pushes queued messages (telemetry, alarms, new entities)
- Receives cloud commands (dashboard assignments, rule updates)
Local Database
PostgreSQL stores all edge data:
Schema:
- ts_kv: Telemetry time-series data
- attribute_kv: Entity attributes
- entity: Devices, assets, customers, etc.
- alarm: Active and historical alarms
- event: Device connectivity, errors
- rule_chain: Processing logic
- dashboard: UI configurations
Partitioning:
- Time-series tables partitioned by month
- Automatic partition creation
- Configurable retention policies
Entity Model
Single Tenant Design
IndustryOS Edge operates with one tenant and one customer per instance:
This simplifies edge deployment compared to multi-tenant cloud platform.
Entity Provisioning
Edge → Cloud (Uplink Provisioning):
When created on edge, entities automatically provision to cloud:
- User creates device on edge
- Edge saves to local database
- Edge pushes creation event to cloud via gRPC
- Cloud creates entity and links to edge instance
- Cloud confirms creation back to edge
Cloud → Edge (Downlink Provisioning):
Entities created on cloud can be assigned to edges:
- User creates dashboard on cloud
- User assigns dashboard to specific edge(s)
- Cloud pushes assignment event to edge
- Edge receives and saves dashboard locally
- Dashboard now available on edge UI
Entity Relations
Edge-provisioned entities maintain bidirectional relations:
Query on Cloud:
- Find all devices managed by “Factory Floor Edge”
- View telemetry from edge-connected devices
- See which edges manage a specific device
Data Flow
Telemetry Ingestion
Alarm Processing
Dashboard Sync
Offline Operation
Offline Capabilities
Full Local Operation:
- Accept device telemetry
- Process rule chains
- Create and clear alarms
- Display dashboards
- Execute RPC commands
- Save all data locally
Queue Management:
Reconnection Behaviour
On Network Restore:
- Edge detects cloud availability
- Re-establishes gRPC connection
- Authenticates with edge key/secret
- Begins queue drain:
- Sends oldest messages first
- Batches telemetry for efficiency
- Sends alarms individually
- Sends entity updates individually
- Receives pending cloud events
- Resumes normal bidirectional sync
Queue Processing:
- Batch Size: 1000 records (configurable)
- Send Interval: 100ms between batches
- Priority: Alarms > Entity updates > Telemetry
Scalability
Horizontal Scaling
Edge instances are independent and do not cluster:
Vertical Scaling
Increase edge capacity:
Database Tuning:
JVM Tuning:
Actor System Tuning:
Device Limits
Recommended Capacity per Edge:
| Hardware | Max Devices | Telemetry Rate |
|---|---|---|
| 1GB RAM, 2 cores | 100 | 10 msg/sec/device |
| 2GB RAM, 4 cores | 500 | 10 msg/sec/device |
| 4GB RAM, 8 cores | 2000 | 10 msg/sec/device |
| 8GB RAM, 16 cores | 5000+ | 20+ msg/sec/device |
Security Architecture
Authentication Layers
1. Device Authentication:
- Access tokens (UUID)
- X.509 certificates (MQTT TLS)
- Username/password (MQTT)
2. User Authentication:
- Username/password
- OAuth 2.0 (synced from cloud)
- JWT tokens (session management)
3. Edge-Cloud Authentication:
- Edge routing key (UUID)
- Edge routing secret (credential)
- Mutual TLS (optional)
Network Security
Edge → Devices:
Edge → Cloud:
Data Security
At Rest:
- PostgreSQL database encryption (optional)
- Encrypted configuration files
- Secure credential storage
In Transit:
- TLS for all external communication
- gRPC encryption to cloud
- MQTT/HTTPS/CoAP with TLS
Deployment Architectures
Edge at Factory Site
Edge with Gateway
Multi-Site Deployment
Configuration Files
Main Configuration
/etc/industryos-edge/conf/industryos-edge.conf:
Database Configuration
/etc/industryos-edge/conf/industryos-edge-db.yml:
Monitoring & Diagnostics
Health Checks
Endpoint: http://localhost:8080/api/edge/health
Response:
Metrics
Available via REST API:
Telemetry Stats:
- Messages processed (total, per second)
- Messages queued for cloud
- Database writes (per second)
Cloud Sync Stats:
- Connection status (online/offline)
- Last sync timestamp
- Queue drain rate
- Sync errors (count, last error)
System Stats:
- CPU usage
- Memory usage
- Disk usage
- Database connection pool
Performance Considerations
Database Optimization
Partition Management:
Index Tuning:
Rule Chain Optimization
- Minimise Script Nodes: Use built-in nodes when possible
- Batch Processing: Aggregate before saving
- Conditional Push: Only push necessary data to cloud
Transport Tuning
MQTT:
HTTP:
Upgrade Strategy
Backup Before Upgrade
Perform Upgrade
Verify Upgrade
Next Steps
- Key Concepts Documentation
- Configuration Guides
- Integration Guides
- Security Best Practices
- Troubleshooting Guide