Keynote: Don’t Hit Refresh: Towards Automatic Reactivity for Distributed Services
Cloud services are commonly architected as a collection of distributed stateless and stateful services, composed using fallible remote procedure calls. This model can address the key requirements of scalability, fault-tolerance, and manageability at low cost. However, reactive functionality can be challenging to incorporate. Standard mechanisms like streams, publish-subscribe, or explicit dataflow don’t readily compose with the failure model of RPC services. This hampers wider adoption of real-time features for interaction, collaboration, and monitoring. We argue that in a system of composed fallible RPC services, where states and interfaces are clearly identified, it is possible and beneficial to provide reactivity as an automatic behavior. Rather than requiring programmers to explicitly specify dataflow, the runtime can track the distributed execution of a service call, construct a dependency graph, and propagate changes to the client. This dependency graph can be automatically created and maintained, can involve any number data sources, can freely change its structure in response to changing data, and can be recovered automatically on failures.
Sebastian Burckhardt was born and raised in Basel, Switzerland, where he studied Mathematics at the local University. During an exchange year at Brandeis University, he discovered his affinity to Computer Science and immigrated to the United States. After a few years of industry experience at IBM, he returned to academia and earned his PhD in Computer Science at the University of Pennsylvania. Since then, he has worked as a researcher at Microsoft Research in Redmond. His general research interest is the study of programming models for of concurrent, parallel, and distributed systems. More specific interests include consistency models, concurrency testing, self-adjusting computation, and the concurrent revisions programming model.