ABSTRACT
Stateful applications are based on the state they hold and how it changes over time. This history of state changes is usually discarded as the application progresses. By building on concepts from event processing and storing the application history we envision a novel programming paradigm that supports retroaction. Retroactive computing introduces new opportunities for a developer to access and even modify an application timeline. By enabling the exploration of alternative scenarios, retroactive computing establishes powerful new ways to debug systems and introduces new approaches to solve problems. Initial work has shown the practicality and possibilities of this new programming paradigm and introduces further research questions and challenges.
- Paulo Sérgio Almeida, Carlos Baquero, and Victor Fonte. 2008. Interval Tree Clocks. In Principles of Distributed Systems, Theodore P. Baker, Alain Bui, and Sébastien Tixeuil (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 259--274. Google ScholarDigital Library
- Erik D. Demaine, John Iacono, and Stefan Langerman. 2007. Retroactive Data Structures. ACM Trans. Algorithms 3, 2, Article 13 (May 2007), 20 pages. Google ScholarDigital Library
- James R. Driscoll, Neil Sarnak, Daniel D. Sleator, and Robert E. Tarjan. 1989. Making data structures persistent. J. Comput. System Sci. 38, 1 (1989), 86 -- 124. http://www.sciencedirect.com/science/article/pii/0022000089900342 Google ScholarDigital Library
- Benjamin Erb, Gerhard Habiger, and Franz J. Hauck. 2016. On the Potential of Event Sourcing for Retroactive Actor-based Programming. In First Workshop on Programming Models and Languages for Distributed Computing. ACM, New York, NY, USA, Article 4, 5 pages. Google ScholarDigital Library
- Martin Fowler. 2005. Event Sourcing. http://martinfowler.com/eaaDev/EventSourcing.html. (Dec. 2005). Accessed: 2018-02-19.Google Scholar
- Michael P Frank. 2017. Throwing computing into reverse. IEEE Spectrum 54, 9 (2017), 32--37.Google ScholarCross Ref
- Friedemann Mattern. 1989. Virtual Time and Global States of Distributed Systems. In Parallel and Distributed Algorithms. North-Holland, 215--226.Google Scholar
- Dominik Meißner, Benjamin Erb, Frank Kargl, and Matthias Tichy. 2018. Retro-λ: An Event-sourced Platform for Serverless Applications with Retroactive Computing Support. In Proceedings of the 12th ACM International Conference on Distributed and Event-based Systems. ACM, New York, NY, USA, 12. Google ScholarDigital Library
- Luc Moreau, Paul Groth, Simon Miles, Javier Vazquez-Salceda, John Ibbotson, Sheng Jiang, Steve Munroe, Omer Rana, Andreas Schreiber, Victor Tan, and Laszlo Varga. 2008. The Provenance of Electronic Data. Commun. ACM 51, 4 (April 2008), 52--58. Google ScholarDigital Library
- G. Pothier and É. Tanter. 2009. Back to the Future: Omniscient Debugging. IEEE Software 26, 6 (Nov 2009), 78--85. Google ScholarDigital Library
- Robin Salkeld and Ronald Garcia. 2015. Essential Retroactive Weaving. In Companion Proceedings of the 14th International Conference on Modularity. ACM, New York, NY, USA, 52--57. Google ScholarDigital Library
- Robin Salkeld, Wenhao Xu, Brendan Cully, Geoffrey Lefebvre, Andrew Warfield, and Gregor Kiczales. 2011. Retroactive Aspects: Programming in the Past. In Proceedings of the Ninth International Workshop on Dynamic Analysis. ACM, New York, NY, USA, 29--34. Google ScholarDigital Library
- Tetsuo Yokoyama, Holger Bock Axelsen, and Robert Glück. 2008. Principles of a Reversible Programming Language. In Proceedings of the 5th Conference on Computing Frontiers. ACM, New York, NY, USA, 43--54. Google ScholarDigital Library
Index Terms
- Towards Time Travel in Distributed Event-sourced Systems
Recommendations
A conceptual model for event-sourced graph computing
DEBS '15: Proceedings of the 9th ACM International Conference on Distributed Event-Based SystemsSystems for highly interconnected application domains are increasingly taking advantage of graph-based computing platforms. Existing platforms employ a batch-oriented computing model and neglect near-realtime processing or temporal analysis. We suggest ...
On the Potential of Event Sourcing for Retroactive Actor-based Programming
PMLDC '16: First Workshop on Programming Models and Languages for Distributed ComputingThe actor model is an established programming model for distributed applications. Combining event sourcing with the actor model allows the reconstruction of previous states of an actor. When this event sourcing approach for actors is enhanced with ...
Retro-λ: An Event-sourced Platform for Serverless Applications with Retroactive Computing Support
DEBS '18: Proceedings of the 12th ACM International Conference on Distributed and Event-based SystemsState changes over time are inherent characteristics of stateful applications. So far, there are almost no attempts to make the past application history programmatically accessible or even modifiable. This is primarily due to the complexity of temporal ...
Comments