The Challenge: Processing Data at the Edge
Modern edge computing demands more than just running code close to data sources. When you're processing sensor data from manufacturing lines, log streams from distributed systems, or real-time telemetry from IoT devices, throughput matters. A lot.
We designed a comprehensive benchmark suite to test Expanso Edge under real-world conditions. Our goal: understand the performance characteristics of different input methods and identify the limits of what's possible when processing data at the edge.
Key Findings
The results exceeded our expectations. Expanso Edge sustained 400,000 signals per second through stdin pipes with 100% test pass rate. Even the HTTP input method, which has the highest overhead, sustained 250K signals/second.
Stdin Pipe
File Tailing
HTTP Server
Input Method Comparison
Each input method has different performance characteristics based on how data enters the processing pipeline:
| Input Type | Max Rate | Use Case | Tests Passed |
|---|---|---|---|
| Stdin Pipe | 400K/s | Process piping, streaming ingestion | 16/16 |
| File Tailing | 300K/s | Log files, batch processing | 12/12 |
| HTTP Server | 250K/s | REST APIs, webhooks | 7/10 |
Throughput by Input Method
Why These Numbers Matter
Processing 400,000 events per second isn't just a vanity metric. Here's what it enables:
Manufacturing Telemetry
Process sensor readings from thousands of machines simultaneously. Real-time anomaly detection before issues reach the cloud.
Log Aggregation
Filter and enrich log streams at the source. Reduce bandwidth by 10-100x by processing before transmission.
IoT Data Pipelines
Handle bursts of sensor data during peak events. Add timestamps, filter noise, and route to appropriate destinations.
Security Monitoring
Process network events in real-time. Detect threats at the edge before they propagate through your infrastructure.
The Pipeline
Each benchmark used a realistic processing pipeline that adds timestamps and filters data:
input:
stdin:
codec: lines
pipeline:
threads: -1 # Use all available cores
processors:
- mapping: |
root.processed_at = now()
root.value = this.value
root.type = this.type
- mapping: |
root = if this.value > 5 { this } else { deleted() }
output:
file:
path: output.jsonl
codec: lines
This isn't a synthetic benchmark - it's a real-world pattern. Add metadata, filter based on conditions, write results. The fact that we can do this 400,000 times per second opens up entirely new possibilities for edge data processing.
What We Learned
The HTTP input method showed an interesting pattern: it handles the "drop" scenario (discarding output) much better than buffered writes. At 150K/s with buffered output, disk I/O becomes the bottleneck. This suggests that for maximum HTTP throughput, pair it with async output sinks or memory-based queues.
File tailing proved remarkably consistent - 100% pass rate across all test configurations. This makes it ideal for log ingestion scenarios where you're processing files as they're written.
Ready to Process Data at the Edge?
Expanso Edge brings high-performance data processing to wherever your data lives. No cloud round-trips. No compromises on throughput.
Learn More About ExpansoMethodology
For complete transparency, here's how we ran these benchmarks:
- Test duration: 30 seconds per rate level
- Rates tested: 50K, 100K, 150K, 200K, 250K, 300K, 350K, 400K signals/sec
- Success criteria: Processing completes within expected time (5% tolerance)
- Signal format: JSON lines with random values (1-10)
- Processing: Add timestamp, filter values > 5
All tests were run on standard hardware to represent realistic edge deployment scenarios. The benchmark code is open source and reproducible.