Fix: externalizing network I/O in serverless computing
Yuhan Deng, Akshay Srivatsan, Sebastian Ingino, Francis Chua, Yasmine Mitchell, Matthew Vilaysack, Keith Winstein
TL;DR
Fix addresses serverless inefficiency by externalizing I/O and representing computation as a serializable, dataflow-driven ABI that enables the runtime to schedule and move data efficiently. Implemented as Fixpoint with a Wasm-based trusted toolchain, it demonstrates low per-invocation overhead and significant gains from locality-aware data movement and fine-grained, dependency-aware execution. The results show substantial improvements in invocation and orchestration overhead, as well as the practicality of porting real workloads through Flatware/WASI, while acknowledging limitations in the pure-functional model and the need for broader I/O delineation. The work suggests a shift toward pay-for-results and computation-as-a-service, enabling providers to optimize placement and scheduling with visibility into data dependencies.
Abstract
We describe a system for serverless computing where users, programs, and the underlying platform share a common representation of a computation: a deterministic procedure, run in an environment of well-specified data or the outputs of other computations. This representation externalizes I/O: data movement over the network is performed exclusively by the platform. Applications can describe the precise data needed at each stage, helping the provider schedule tasks and network transfers to reduce starvation. The design suggests an end-to-end argument for outsourced computing, shifting the service model from ``pay-for-effort'' to ``pay-for-results.''
