Democratizing Scalable Cloud Applications: Transactional Stateful Functions on Streaming Dataflows
By: Kyriakos Psarakis
Web applications underpin much of modern digital life, yet building scalable and consistent cloud applications remains difficult, requiring expertise across cloud computing, distributed systems, databases, and software engineering. These demands restrict development to a small number of highly specialized engineers. This thesis aims to democratize cloud application development by addressing three challenges: programmability, high-performance fault-tolerant serializable transactions, and serverless semantics. The thesis identifies strong parallels between cloud applications and the streaming dataflow execution model. It first explores this connection through T-Statefun, a transactional extension of Apache Flink Statefun, demonstrating that dataflow systems can support transactional cloud applications via a stateful functions-as-a-service API. However, this approach revealed significant limitations in programmability and performance. To overcome these issues, the thesis introduces Stateflow, a high-level object-oriented programming model that compiles applications into stateful dataflow graphs with minimal boilerplate. Building on this model, the thesis presents Styx, a distributed streaming dataflow engine that provides deterministic, multi-partition, serializable transactions with strong fault tolerance guarantees. Styx eliminates explicit transaction failure handling and significantly outperforms state-of-the-art systems. Finally, the thesis extends Styx with transactional state migration to support elasticity under dynamic workloads.
Similar Papers
Transactional Cloud Applications: Status Quo, Challenges, and Opportunities
Databases
Helps apps work better and cheaper in the cloud.
CheetahGIS: Architecting a Scalable and Efficient Streaming Spatial Query Processing System
Databases
Lets computers track many moving things fast.
Scaling Inter-procedural Dataflow Analysis on the Cloud
Programming Languages
Analyzes huge computer programs much faster.