Use Case
Edge-to-Cloud Telemetry
Never lose a data point. Never miss a beat. Stream telemetry from any source at any rate — Tetrapus handles batching, compression, buffering, persistence, and analytics automatically.
What you can do
IoT Sensor Networks
10,000 sensors at 10 Hz with automatic compression. The spill buffer survives network outages — your data arrives when connectivity returns.
High-Frequency Trading
Sub-millisecond tick data at 5,000 Hz. Priority routing ensures critical alerts bypass normal batching.
Field Operations
Intermittent satellite links with automatic store-and-forward. Adaptive bandwidth adjusts batch size and compression based on link quality.
How it works
graph LR
SRC["Your Application"] --> SDK["Tetrapus SDK<br/><small>~50ns non-blocking send</small>"]
SDK --> QUIC["QUIC + TLS 1.3<br/><small>Batched, compressed</small>"]
QUIC --> SRV["Tetrapus Server<br/><small>Validate → Dedup → Route</small>"]
SRV --> WAL["WAL<br/><small>Durable persistence</small>"]
WAL --> EB["EventBus<br/><small>Live panes</small>"]
WAL --> CH["ClickHouse<br/><small>Historical analytics</small>"]
SDK -.->|offline| SPILL["SpillBuffer<br/><small>Disk-backed</small>"]
SPILL -.->|reconnect| QUIC
Key capabilities
| Capability | What it does |
|---|---|
| Zero Data Loss | Disk-backed spill buffer (64 MiB default) survives crashes and network outages. Messages replay in order on reconnect. |
| Adaptive Bandwidth | RTT-based link quality estimation automatically adjusts batch size (1.4–8 KB) and enables compression on degraded links. |
| Priority Routing | Critical alerts bypass batching and send immediately. Low-priority bulk data uses 4x larger batches for efficiency. |
| Multi-Source | QUIC SDK (primary), plus HTTP, Kafka, and S3 adapters for enterprise integration. |
| Sub-50ns Send | Non-blocking fire-and-forget from your application thread via crossbeam bounded channels. |
| ClickHouse Analytics | Petabyte-scale time-series storage with H3 hexagonal spatial indexing for sub-second aggregation. |
| Anomaly Detection | Server-side Z-score and Pearson correlation computed in ClickHouse CTEs — no raw data transferred to client. |
| Computed Fields | Derive new fields with arithmetic, group aggregations, windowed temporal functions, and rate-of-change calculations. |
SDK integration
Rust
use tetrapus_sdk::{TetrapusClient, TetrapusConfig, SchemaId};
let config = TetrapusConfig::new("127.0.0.1:4433")
.with_queue_capacity(50_000)
.with_batch_size(1400)
.with_flush_interval(Duration::from_millis(10));
let client = TetrapusClient::connect(config).await?;
// Non-blocking — pushes to queue in ~50ns
client.send_raw(schema_id, &payload)?; Workload tuning
| Workload | Queue | Batch | Flush | Compression |
|---|---|---|---|---|
| IoT sensors 10 Hz | 1,000 | 1,400 B | 100 ms | None |
| Fleet GPS 100 Hz | 10,000 | 1,400 B | 10 ms | None |
| F1 telemetry 1 kHz | 50,000 | 4,096 B | 5 ms | Lz4 |
| HFT tick data 5 kHz | 100,000 | 8,192 B | 1 ms | Lz4 |
Ready to see the full picture?
One docker pull. Full stack in minutes. No build tools required.