ALEC Gateway

Orchestrate Your IoT Sensors

Transform chaotic sensor streams into structured, observable data flows. Built-in metrics tell you exactly how your system is performing.

64+
Channels per gateway
5
Priority levels
242B
LoRaWAN optimized
Real-time
Entropy metrics

Everything you need

πŸ“Š

Channel Management

Handle 64+ sensors with individual configuration and priority

⚑

Priority Scheduling

P1-P5 levels ensure critical data is transmitted first

πŸ“¦

Frame Aggregation

Optimized packing for LoRaWAN 51-242 byte limits

πŸ”

Built-in Metrics

Real-time entropy, correlation, and resilience tracking

Architecture

Gateway manages multiple ALEC encoder instances, aggregating data from many sensors into efficient transmission frames.

Sensors
🌑️
Temperature
Channel #1
πŸ’§
Humidity
Channel #2
πŸ“Š
Pressure
Channel #3
+ 61 more
ALEC Gateway
Context Manager
Priority Scheduler
P1 β†’ P5
Frame Aggregator
Transport
Frame
51-242B
optimized payload
πŸ“»
LoRaWAN
πŸ“‘
MQTT
πŸ”—
CoAP
🌐
HTTP/REST

Integrations

Export metrics to your favorite monitoring tools. Gateway provides Prometheus-compatible endpoints out of the box.

Monitoring

Grafana Grafana
Prometheus Prometheus
Datadog Datadog

Storage

InfluxDB InfluxDB
TimescaleDB TimescaleDB
PostgreSQL PostgreSQL

Cloud

AWS IoT AWS IoT
Azure IoT Azure IoT
GCP IoT GCP IoT

Real-time Dashboard

ALEC Gateway Grafana Dashboard

Pre-built Grafana dashboard included β€’ Real-time entropy, resilience, and channel metrics

Built-in Observability

Gateway includes a powerful metrics module that computes entropy-based indicators in real-time. Know your system health at a glance.

Metric Formula What it tells you
Total Correlation (TC) Sum H(Xi) - H(X1...Xn) Redundancy across sensors
Resilience Index (R) TC / Sum H(Xi) System health (0-1)
Criticality (dR) R - R without k Sensor importance ranking
R ≥ 0.5 - Healthy

High redundancy, can lose sensors

0.2 ≤ R < 0.5 - Attention

Moderate redundancy

R < 0.2 - Critical

Low redundancy, fragile system

LoRaWAN Optimized

Gateway automatically respects payload limits for different data rates.

Data Rate Max Payload Use Case
DR0-DR2 51 bytes Long range, low throughput
DR3 115 bytes Balanced
DR4-DR5 242 bytes Short range, high throughput

Deployment Options

πŸ“¦

Cargo Crate

Add to your Rust project

cargo add alec-gateway
🐳

Docker

Run as a standalone service

docker pull alec/gateway
☸️

Kubernetes

Helm chart available

helm install alec

Simple API

use alec_gateway::{Gateway, ChannelConfig, GatewayConfig};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Create gateway with LoRaWAN frame limit
    let config = GatewayConfig {
        max_frame_size: 242,
        ..Default::default()
    };
    let mut gateway = Gateway::with_config(config);

    // Add sensor channels with priorities
    gateway.add_channel("temperature", ChannelConfig::with_priority(1))?;
    gateway.add_channel("humidity", ChannelConfig::with_priority(2))?;
    gateway.add_channel("pressure", ChannelConfig::with_priority(3))?;

    // Collect sensor readings
    let timestamp = 1234567890;
    gateway.push("temperature", 22.5, timestamp)?;
    gateway.push("humidity", 65.0, timestamp)?;
    gateway.push("pressure", 1013.25, timestamp)?;

    // Get aggregated frame ready for transmission
    let frame = gateway.flush()?;
    println!("Frame: {} bytes", frame.size());
    // frame.to_bytes() -> send over LoRaWAN/MQTT

    Ok(())
}

Ready to orchestrate?

Start with the open source version or contact us for commercial licensing.