  Function-as-a-Service (FaaS) platforms and "serverless" cloud computing are
becoming increasingly popular. Current FaaS offerings are targeted at stateless
functions that do minimal I/O and communication. We argue that the benefits of
serverless computing can be extended to a broader range of applications and
algorithms. We present the design and implementation of Cloudburst, a stateful
FaaS platform that provides familiar Python programming with low-latency
mutable state and communication, while maintaining the autoscaling benefits of
serverless computing. Cloudburst accomplishes this by leveraging Anna, an
autoscaling key-value store, for state sharing and overlay routing combined
with mutable caches co-located with function executors for data locality.
Performant cache consistency emerges as a key challenge in this architecture.
To this end, Cloudburst provides a combination of lattice-encapsulated state
and new definitions and protocols for distributed session consistency.
Empirical results on benchmarks and diverse applications show that Cloudburst
makes stateful functions practical, reducing the state-management overheads of
current FaaS platforms by orders of magnitude while also improving the state of
the art in serverless consistency.
