Transactional Cloud Applications Go with the (Data)Flow
Kyriakos Psarakis (TU Delft - Electrical Engineering, Mathematics and Computer Science, TU Delft - Electrical Engineering, Mathematics and Computer Science)
George Christodoulou (TU Delft - Electrical Engineering, Mathematics and Computer Science)
Marios Fragkoulis (TU Delft - Electrical Engineering, Mathematics and Computer Science)
Asterios Katsifodimos (TU Delft - Electrical Engineering, Mathematics and Computer Science)
More Info
expand_more
Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.
Abstract
Traditional monolithic applications are migrated to the cloud, typically using a microservice-like architecture. Although this migration leads to significant benefits such as scalability and development agility, it also leaves behind the transactional guarantees that database systems have provided to monolithic applications for decades. In the cloud era, developers build transactional and fault-tolerant distributed applications by explicitly programming transaction protocols at the application level. In this paper, we argue that the principles behind the streaming dataflow execution model and deterministic transactional protocols provide a powerful and suitable substrate for executing transactional cloud applications. To this end, we introduce Styx, a transactional application runtime based on streaming dataflows that enables an object-oriented programming model for scalable, fault-tolerant cloud applications with serializable guarantees.