Skip to main content Accessibility help
Hostname: page-component-55597f9d44-l69ms Total loading time: 0.334 Render date: 2022-08-11T03:47:58.500Z Has data issue: true Feature Flags: { "shouldUseShareProductTool": true, "shouldUseHypothesis": true, "isUnsiloEnabled": true, "useRatesEcommerce": false, "useNewApi": true } hasContentIssue true

Typed dataspace actors

Published online by Cambridge University Press:  24 August 2020

Northeastern University, Boston, MA 02115, USA (e-mails:,,
Northeastern University, Boston, MA 02115, USA (e-mails:,,
Northeastern University, Boston, MA 02115, USA (e-mails:,,
Rights & Permissions[Opens in a new window]


HTML view is not available for this content. However, as you have access to this content, a full PDF is available via the ‘Save PDF’ action button.

Actors collaborate via message exchanges to reach a common goal. Experience has shown, however, that pure message-based communication is limiting and forces developers to use design patterns. The recently introduced dataspace actor model borrows ideas from the tuple space realm. It offers a tightly controlled, shared storage facility for groups of actors. In this model, actors assert facts that they wish to share and interests in such assertions. The dataspace notifies interested parties of changes to the set of assertions that they are interested in. Although it is straightforward to add the dataspace model to untyped languages, adding a typed interface is both necessary and challenging. Without restrictions on exchanged data, a faulty actor may propagate erroneous data through a malformed assertion, causing an otherwise well-behaved actor to crash—violating the key principle of failure isolation. A properly designed type system can prevent this scenario and rule out other kinds of uncooperative actors. This paper presents the first structural type system for the dataspace model of actors; it does not address the question of behavioral types for assertion-oriented protocols.

Video Abstract

Research Article
© The Author(s), 2020. Published by Cambridge University Press


Gigaspaces (2017). Gigaspaces. Accessed October 19, 2017. Available at: Scholar
Javaspaces service specification (2017). Javaspaces service specification, version 2.3. Accessed January 24, 2017. Available at: Scholar
Agha, G. (1986) Actors: A Model of Concurrent Computation in Distributed Systems. Massachusetts: MIT.CrossRefGoogle Scholar
Armstrong, J. (1994) Programming Erlang. The Pragmatic Programmers.Google Scholar
Armstrong, J. (2003) Making Reliable Distributed Systems in the Presence of Software Errors. PhD dissertation, Stockholm: Royal Institute of Technology.Google Scholar
Caires, L. & Vieira, H. T. (2009) Conversation types. In ESOP, pp. 285300.CrossRefGoogle Scholar
Carriero, N. J., Gelernter, D., Mattson, T. G. & Sherman, A. H. (1994) The Linda alternative to message-passing systems. Parallel Comput. 20(4), 633655.CrossRefGoogle Scholar
Chang, S., Knauth, A. & Greenman, B. (2017) Type systems as macros. In POPL, pp. 694705.CrossRefGoogle Scholar
Clebsch, S., Drossopoulou, S., Blessing, S. & McNeil, A. (2015) Deny capabilities for safe, fast actors. In International Workshop on Programming Based on Actors, Agents, and Decentralized Control. AGERE! 2015.CrossRefGoogle Scholar
Clocksin, W. F. & Mellish, C. S. (1981) Programming in Prolog. Springer.Google Scholar
Crafa, S. (2012) Behavioural Types for Actor Systems. Technical report.Google Scholar
de’Liguoro, U. & Padovani, L. (2018) Mailbox types for unordered interactions. In ECOOP.Google Scholar
Dotty Compiler Team. (2019) Union types - more details. Accessed December 13, 2019. Available at: Scholar
ECMA. (2015) ECMA-262: ECMAScript 2015 Language Specification, 6th ed. ECMA International.Google Scholar
Englemore, R. & Morgan, A. (eds). (1988) Blackboard Systems. Addison-Wesley.Google Scholar
Eugster, P. Th., Felber, P. A., Guerraoui, R. & Kermarrec, A.-M. (2003) The many faces of publish/subscribe. ACM Comput. Surv. 35(2), 114131.CrossRefGoogle Scholar
Felleisen, M., Findler, R. B. & Flatt, M. (2009) Semantics Engineering with PLT Redex. MIT.Google Scholar
Flatt, M., Culpepper, R., Darais, D & Findler, R. B. (2012) Macros that work together: Compile-time bindings, partial expansion, and definition contexts. J. Funct. Program. 22(2), 181216.CrossRefGoogle Scholar
Flatt, M. & PLT. (2010) Reference: Racket. Technical report PLT-TR-2010-1. PLT Inc. Scholar
Garnock-Jones, T. (2017). Conversational Concurrency. PhD dissertation, Northeastern University.Google Scholar
Garnock-Jones, T. & Felleisen, M. (2016) Coordinated concurrent programming in Syndicate. In ESOP, pp. 310336.CrossRefGoogle Scholar
Garnock-Jones, T., Tobin-Hochstadt, S. & Felleisen, M. (2014) The network as a language construct. In ESOP, pp. 473492.CrossRefGoogle Scholar
Gelernter, D. (1985) Generative communication in Linda. ACM Trans. Program. Lang. Syst. CrossRefGoogle Scholar
Girard, J.-Y. (1971) Une extension de l’interpretation de Gödel a l’analyse, et son application a l’elimination des coupures dans l’analyse et la theorie des types. Stud. Logic Foundat. Math. 63, 6392.CrossRefGoogle Scholar
Haller, P. & Loiko, A (2016) LaCasa: Lightweight affinity and object capabilities in Scala. In OOPSLA, pp. 272291.CrossRefGoogle Scholar
He, J., Wadler, P. & Trinder, P. (2014) Typecasting actors: From Akka to TAkka. In Proceedings of the Fifth Annual Scala Workshop, pp. 2333.CrossRefGoogle Scholar
Hewitt, C., Bishop, P. B., Greif, I., Smith, B. C., Matson, T. & Steiger, R. (1973) Actor induction and meta-evaluation. In POPL.CrossRefGoogle Scholar
Hoffmann, J. & Shao, Z. (2015) Automatic static cost analysis for parallel programs. In ESOP, pp. 132157.CrossRefGoogle Scholar
Honda, K., Vasconcelos, V. T. & Kubo, M. (1998) Language primitives and type discipline for structured communication-based programming. In ESOP, pp. 122138.CrossRefGoogle Scholar
Honda, K., Yoshida, N. & Carbone, M. (2008) Multiparty asynchronous session types. In POPL’08, pp. 273284.CrossRefGoogle Scholar
Jeuring, J. (1995) Polytypic pattern matching. In FPCA’95, pp. 238248.CrossRefGoogle Scholar
Leivant, D. (2001) Termination proofs and complexity certification. In Theoretical Aspects of Computer Software, pp. 183–200.CrossRefGoogle Scholar
Miller, M. S., Tribble, E. D. & Shapiro, J. (2005) Concurrency among strangers. In International Symposium on Trustworthy Global Computing, pp. 195229.CrossRefGoogle Scholar
Milner, R. (1999) Communicating and Mobile Systems: The PI Calculus. Cambridge University.Google Scholar
Mostinckx, S., Scholliers, C., Philips, E., Herzeel, C. & De Meuter, W. (2007) Fact spaces: Coordination in the face of disconnection. In Proceedings of COORDINATION 2007, pp. 268285.CrossRefGoogle Scholar
Mostrous, D. & Vasconcelos, V. T. (2011) Session typing for a featherweight erlang. In COORDINATION, pp. 95109.CrossRefGoogle Scholar
Murphy, A. L., Picco, G. P. & Roman, G.-C. (2006) Lime: A coordination model and middleware supporting mobility of hosts and agents. ACM Trans. Soft. Eng. Method. 15(3), 279328.CrossRefGoogle Scholar
Newell, A. & Simon, H. A. (1972) Human Problem Solving. Prentice Hall.Google Scholar
Picco, G. P., Balzarotti, D. & Costa, P. (2005) LighTS: A lightweight, customizable tuple space supporting context-aware applications. In Proceedings of SAC’05, pp. 413419.CrossRefGoogle Scholar
Pierce, B. C. (1991) Programming with Intersection Types, Union Types, and Polymorphism. Technical report CMU-CS-91-106, Carnegie Mellon University.Google Scholar
Pierce, B. C. & Turner, D. N. (1998) Local type inference. In POPL, pp. 252265.CrossRefGoogle Scholar
Scholliers, C., Harnie, D., Tanter, E., De Meuter, W. & D’Hondt, T. (2011) Ambient contracts: Verifying and enforcing ambient object compositions à la carte. Personal Ubiquitous Comput. 15(4), 341351.CrossRefGoogle Scholar
Srinivasan, S. & Mycroft, A. (2008) Kilim: Isolation-typed actors for Java. In ECOOP, pp. 104128.CrossRefGoogle Scholar
Strom, R. E. & Yemini, S. (1986) Typestate: A programming language concept for enhancing software reliability. IEEE Trans. Soft. Eng., 157–171.CrossRefGoogle Scholar
Summers, A. J. & Müller, P. (2016) Actor services: Modular verification of message passing programs. In ESOP.CrossRefGoogle Scholar
Tasharofi, S., Dinges, P. & Johnson, R. E. (2013) Why do scala developers mix the actor model with other concurrency models? In ECOOP.CrossRefGoogle Scholar
Tobin-Hochstadt, S. & Felleisen, M. (2008) The design and implementation of Typed Scheme. In POPL, pp. 395406.CrossRefGoogle Scholar
Toninho, B., Caires, L. & Pfenning, F. (2011) Dependent session types via intuitionistic linear type theory. In PPDP.CrossRefGoogle Scholar
Van Cutsem, T., Gonzalez Boix, E., Scholliers, C., Lombide Carreton, A., Harnie, D., Pinte, K. & De Meuter, W. (2014) AmbientTalk: Programming responsive mobile peer-to-peer applications with actors. Comput. Lang. Syst. Struct. 40(3–4), 112136.Google Scholar
van der Goot, R. (2000) High Performance Linda Using a Class Library. PhD dissertation, Erasmus University Rotterdam.Google Scholar
Vieira, H. T., Caires, L. & Seco, J. C. (2008) The conversation calculus: A model of service-oriented computation. In ESOP, pp. 269283.CrossRefGoogle Scholar
Wright, A. K. & Felleisen, M. (1994) A syntactic approach to type soundness. Inf. Comput. 115(1), 3894.CrossRefGoogle Scholar
Wyckoff, P., McLaughry, S. W., Lehman, T. J. & Ford, D. A. (1998) T Spaces. IBM Syst. J. 37(3), 454474.CrossRefGoogle Scholar
Submit a response


No Discussions have been published for this article.
You have Access

Save article to Kindle

To save this article to your Kindle, first ensure is added to your Approved Personal Document E-mail List under your Personal Document Settings on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part of your Kindle email address below. Find out more about saving to your Kindle.

Note you can select to save to either the or variations. ‘’ emails are free but can only be saved to your device when it is connected to wi-fi. ‘’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.

Find out more about the Kindle Personal Document Service.

Typed dataspace actors
Available formats

Save article to Dropbox

To save this article to your Dropbox account, please select one or more formats and confirm that you agree to abide by our usage policies. If this is the first time you used this feature, you will be asked to authorise Cambridge Core to connect with your Dropbox account. Find out more about saving content to Dropbox.

Typed dataspace actors
Available formats

Save article to Google Drive

To save this article to your Google Drive account, please select one or more formats and confirm that you agree to abide by our usage policies. If this is the first time you used this feature, you will be asked to authorise Cambridge Core to connect with your Google Drive account. Find out more about saving content to Google Drive.

Typed dataspace actors
Available formats

Reply to: Submit a response

Please enter your response.

Your details

Please enter a valid email address.

Conflicting interests

Do you have any conflicting interests? *