IoT & telemetry
Absorb line-rate device streams durably, then read current state per device without scanning history.
The problem
Why this is hard today
Fleets of devices produce a relentless, bursty firehose. The naive path — buffer in a queue, batch into a warehouse — trades freshness for durability and still falls over when a burst outpaces the drain.
Meanwhile the questions operators ask are current-state questions: what is this machine doing right now, which sensors are over threshold, what changed since the last reading. Answering those by scanning append-only history is the wrong shape and the wrong cost.
The engine has to keep up with line-rate ingest without dropping data, apply backpressure instead of OOMing under a burst, and still answer per-device current-state reads in constant time.
Architecture
How NYXDB does it
Readings append at line rate under a memory governor that ramps and blocks admission rather than losing data; keyed tables keep the last reading per device for instant current-state reads.
- 01
Line-rate ingest
Readings append to a WAL-backed table; shard-owned write paths are lock-free across shards.
- 02
Governed admission
The memory governor ramps admission at ~0.8 of the limit and blocks at ~0.95 — backpressure, not data loss.
- 03
Spill under pressure
The committed tail spills to disk when it exceeds RAM, staying bounded.
- 04
Current state
A keyed table keeps the latest reading per (device, metric) for O(1) reads.
Real SQL
In practice
CREATE TABLE readings ( device_id String NOT NULL, metric String NOT NULL, value Float64, PRIMARY KEY (device_id, metric)) DELTA (keep = 'latest');SELECT device_id, valueFROM readingsWHERE metric = 'vibration_rms' AND value > 4.5;STREAM SELECT device_id, valueFROM readingsWHERE metric = 'temp_c';Every statement follows the engine’s own test SQL shapes. See the SQL reference for full syntax.
Capabilities
What you get
Line-rate ingest
Shard-owned, lock-free write paths absorb bursty device streams.
Backpressure, not loss
The memory governor ramps then blocks admission under pressure.
O(1) current state
Keyed tables keep the last reading per device for instant reads.
Edge to cloud
One 154MB image runs on an edge box or in the datacenter.
Live follows
STREAM SELECT tails a metric without polling.
History + current
Append history and keyed current state share one storage contract.
Proof
Measured where it counts
rows/s ingest, end-to-end (local)
ADR-075
rows/s parallel-seal ceiling
ADR-075
rows/s sustained over-RAM (governed)
ADR-075
Ingest the fleet without losing data
Run a node and point your device stream at it.