Epico: Long-Lived WebAssembly Components for High-Performance Serverless Stream Processing

2026-08-03Distributed, Parallel, and Cluster Computing

Distributed, Parallel, and Cluster Computing
AI summary

The authors explain that regular serverless computing struggles with continuous, fast data streams because its functions don't keep state and are managed centrally. They created Epico, a new system that runs parts of data processing as always-ready WebAssembly pieces that can scale easily and send messages directly without a middleman. By using special methods, Epico reduces startup delays and improves data handling speed compared to traditional setups like Apache OpenWhisk. This helps handle streaming data more efficiently.

serverless computingFunction-as-a-Service (FaaS)stream processingWebAssemblyautoscalingZeroMQzero cold start latencyAhead-of-Time (AOT) compilationOpenWhisk
Authors
Matteo Della Bartola, Valerio Besozzi, Patrizio Dazzi, Marco Danelutto
Abstract
While serverless computing is popular, its dominant Function-as-a-Service (FaaS) model is ill-suited for stream processing because its stateless, centrally orchestrated functions cannot efficiently handle continuous, low-latency event flows. We introduce Epico, a serverless runtime explicitly designed to resolve these inefficiencies at the runtime level. Epico executes pipeline stages as persistent WebAssembly components, enabling independent, zero-to-infinity autoscaling based on queue-depth SLOs and routing events directly between stages using broker-free ZeroMQ channels. To optimize short execution paths, it utilizes a credit-based sliding window to amortize inter-process communication costs. Evaluations demonstrate that Ahead-of-Time (AOT) compilation reduces cold-start latencies from hundreds of milliseconds to sub-millisecond ranges, while the credit window improves single-worker throughput by up to \(4.3\times\). Compared to Apache OpenWhisk, Epico bypasses the orchestrator bottlenecks and container overheads that typically hinder FaaS streaming workloads.