Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2957319.2957378acmotherconferencesArticle/Chapter ViewAbstractPublication PagespmldcConference Proceedingsconference-collections
short-paper

On the Potential of Event Sourcing for Retroactive Actor-based Programming

Published: 17 July 2016 Publication History

Abstract

The 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 additional causality information, novel types of actor-based, retroactive computations are possible. A globally consistent state of all actors can be reconstructed retrospectively. Even retroactive changes of actor behavior, state, or messaging are possible, with partial recomputations and projections of changes in the past. We believe that this approach may provide beneficial features to actor-based systems, including retroactive bugfixing of applications, decoupled asynchronous global state reconstruction for recovery, simulations, and exploration of distributed applications and algorithms.

References

[1]
G. Agha. Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, Cambridge, MA, USA, 1986. ISBN 0-262-01092-5.
[2]
P. C. Bryan and M. Nottingham. JavaScript Object Notation (JSON) Patch. RFC 6902, Oct. 2015. URL https://rfc-editor.org/rfc/rfc6902.txt.
[3]
K. M. Chandy and L. Lamport. Distributed snapshots: determining global states of distributed systems. ACM Transactions on Computer Systems (TOCS), 3(1):63--75, 1985.
[4]
B. Charron-Bost. Concerning the size of logical clocks in distributed systems. Information Processing Letters, 39(1):11--16, 1991. ISSN 0020-0190.
[5]
E. D. Demaine, J. Iacono, and S. Langerman. Retroactive Data Structures. ACM Trans. Algorithms, 3(2), May 2007. ISSN 1549-6325.
[6]
E. N. M. Elnozahy, L. Alvisi, Y.-M. Wang, and D. B. Johnson. A survey of rollback-recovery protocols in message-passing systems. ACM Comput. Surv., 34(3):375--408, Sept. 2002. ISSN 0360-0300.
[7]
B. Erb and F. Kargl. A conceptual model for event-sourced graph computing. In Proceedings of the 9th ACM International Conference on Distributed Event-Based Systems, DEBS '15, pages 352--355, New York, NY, USA, 2015. ACM. ISBN 978-1-4503-3286-6.
[8]
C. Fidge. Logical time in distributed computing systems. Computer, 24(8):28--33, Aug 1991. ISSN 0018-9162.
[9]
J. Fowler and W. Zwaenepoel. Causal distributed breakpoints. In Distributed Computing Systems, 1990. Proceedings., 10th International Conference on, pages 134--141. IEEE, 1990.
[10]
M. Fowler. Patterns of Enterprise Application Architecture. A Martin Fowler signature book. Addison-Wesley, 2003. ISBN 9780321127426.
[11]
M. Fowler. Event sourcing. http://martinfowler.com/eaaDev/EventSourcing.html, 2005. Accessed: 2016-05-04.
[12]
A. Gal and O. Etzion. A multiagent update process in a database with temporal data dependencies and schema versioning. IEEE Transactions on Knowledge and Data Engineering, 10(1):21--37, Jan 1998. ISSN 1041-4347.
[13]
A. Gal, O. Etzion, and A. Segev. TALE -- a temporal active language and execution model. In Advanced Information Systems Engineering, pages 60--81. Springer, 1996.
[14]
R. Garg, V. K. Garg, and Y. Sabharwal. Scalable algorithms for global snapshots in distributed systems. In Proceedings of the 20th Annual International Conference on Supercomputing, ICS '06, pages 269--277, New York, NY, USA, 2006. ACM. ISBN 1-59593-282-8.
[15]
D. Ghosh, J. Sheehy, K. Thorup, and S. Vinoski. Programming language impact on the development of distributed systems. Journal of Internet Services and Applications, Issue 2 / 2011:1--8, 2011. ISSN 1867-4828. 10.1007/s13174-011-0042-y.
[16]
D. Haban and W. Weigel. Global events and global breakpoints in distributed systems. In System Sciences, 1988. Vol.II. Software Track, Proceedings of the Twenty-First Annual Hawaii International Conference on, volume 2, pages 166--175, 1988.
[17]
C. Hewitt, P. Bishop, and R. Steiger. A Universal Modular ACTOR Formalism for Artificial Intelligence. In Proceedings of the 3rd International Joint Conference on Artificial Intelligence, IJCAI'73, pages 235--245, San Francisco, CA, USA, 1973. Morgan Kaufmann Publishers Inc.
[18]
C. A. R. Hoare. Communicating sequential processes. Commun. ACM, 21(8):666--677, Aug. 1978. ISSN 0001-0782.
[19]
A. Kshemkalyani. A symmetric O(n log n) message distributed snapshot algorithm for large-scale systems. In Cluster Computing andWorkshops, 2009. CLUSTER '09. IEEE International Conference on, pages 1--4, Aug 2009.
[20]
L. Lamport. Time, clocks, and the ordering of events in a distributed system. Commun. ACM, 21(7):558--565, July 1978. ISSN 0001-0782.
[21]
T. LeBlanc and J. Mellor-Crummey. Debugging parallel programs with instant replay. Computers, IEEE Transactions on, C-36(4):471--482, April 1987. ISSN 0018-9340.
[22]
F. Mattern. Virtual time and global states of distributed systems. In Parallel and Distributed Algorithms, pages 215--226. North-Holland, 1988.
[23]
B. Miller and J.-D. Choi. Breakpoints and halting in distributed programs. In Distributed Computing Systems, 1988., 8th International Conference on, pages 316--323, Jun 1988.
[24]
R. H. Netzer and J. Xu. Adaptive message logging for incremental program replay. IEEE Concurrency, 1(4):32--39, 1993. ISSN 1063-6552.
[25]
R. Salkeld and R. Garcia. Essential Retroactive Weaving. In Companion Proceedings of the 14th International Conference on Modularity, MODULARITY Companion 2015, pages 52--57, New York, NY, USA, 2015. ACM. ISBN 978-1-4503-3283-5.
[26]
R. Salkeld, W. Xu, B. Cully, G. Lefebvre, A. Warfield, and G. Kiczales. Retroactive Aspects: Programming in the Past. In Proceedings of the Ninth International Workshop on Dynamic Analysis, WODA '11, pages 29--34, New York, NY, USA, 2011. ACM. ISBN 978-1-4503-0811-3.
[27]
F. Schmuck. The use of efficient broadcast primitives in asynchronous distributed systems. PhD thesis, Cornell University, 1988.
[28]
M. Shapiro, N. Preguiça, C. Baquero, and M. Zawirski. A comprehensive study of convergent and commutative replicated data types. Technical Report 1, Institut national de recherche en informatique et en automatique, Jan 2011.
[29]
A. P. Sistla and J. L. Welch. Efficient distributed recovery using message logging. In Proceedings of the Eighth Annual ACM Symposium on Principles of Distributed Computing, PODC '89, pages 223--238, New York, NY, USA, 1989. ACM. ISBN 0-89791-326-4.
[30]
S. Vinoski. Concurrency with erlang. IEEE Internet Computing, 11:90--93, September 2007. ISSN 1089-7801.
[31]
Y.-M. Wang. Consistent global checkpoints that contain a given set of local checkpoints. Computers, IEEE Transactions on, 46(4):456--468, Apr 1997. ISSN 0018-9340.
[32]
G. Young. CQRS Documents. https://cqrs.files.wordpress.com/2010/11/cqrs_documents.pdf, 2013. Accessed: 2016-05-04.

Cited By

View all
  • (2022)Object Relational Mapping Vs. Event-Sourcing: Systematic ReviewElectronic Government and the Information Systems Perspective10.1007/978-3-031-12673-4_2(18-31)Online publication date: 22-Aug-2022
  • (2018)Log Pruning in Distributed Event-sourced SystemsProceedings of the 12th ACM International Conference on Distributed and Event-based Systems10.1145/3210284.3219767(230-233)Online publication date: 25-Jun-2018
  • (2018)Towards Time Travel in Distributed Event-sourced SystemsProceedings of the 12th ACM International Conference on Distributed and Event-based Systems10.1145/3210284.3219499(266-269)Online publication date: 25-Jun-2018
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
PMLDC '16: First Workshop on Programming Models and Languages for Distributed Computing
July 2016
42 pages
ISBN:9781450347754
DOI:10.1145/2957319
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

In-Cooperation

  • UCL: l'Université catholique de Louvain

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 17 July 2016

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Actor Model
  2. Distributed Computing
  3. Event Sourcing
  4. Retroactive Computing

Qualifiers

  • Short-paper
  • Research
  • Refereed limited

Conference

PMLDC '16

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)33
  • Downloads (Last 6 weeks)0
Reflects downloads up to 12 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2022)Object Relational Mapping Vs. Event-Sourcing: Systematic ReviewElectronic Government and the Information Systems Perspective10.1007/978-3-031-12673-4_2(18-31)Online publication date: 22-Aug-2022
  • (2018)Log Pruning in Distributed Event-sourced SystemsProceedings of the 12th ACM International Conference on Distributed and Event-based Systems10.1145/3210284.3219767(230-233)Online publication date: 25-Jun-2018
  • (2018)Towards Time Travel in Distributed Event-sourced SystemsProceedings of the 12th ACM International Conference on Distributed and Event-based Systems10.1145/3210284.3219499(266-269)Online publication date: 25-Jun-2018
  • (2018)Applying Event Sourcing in a ERP System: A Case Study2018 XLIV Latin American Computer Conference (CLEI)10.1109/CLEI.2018.00019(80-89)Online publication date: Oct-2018
  • (2017)Advanced debugging techniques to identify concurrency bugs in actor-based programsProceedings Companion of the 2017 ACM SIGPLAN International Conference on Systems, Programming, Languages, and Applications: Software for Humanity10.1145/3135932.3135936(13-15)Online publication date: 22-Oct-2017
  • (2017)Consistent retrospective snapshots in distributed event-sourced systems2017 International Conference on Networked Systems (NetSys)10.1109/NetSys.2017.7903947(1-8)Online publication date: Mar-2017
  • (2016)ChronographProceedings of the Posters and Demos Session of the 17th International Middleware Conference10.1145/3007592.3007601(15-16)Online publication date: 12-Dec-2016

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media