Skip to main content

A Survey of Actor-Like Programming Models for Serverless Computing

  • Chapter
  • First Online:
Active Object Languages: Current Research Trends

Abstract

Serverless computing promises to significantly simplify cloud computing by providing Functions-as-a-Service where invocations of functions, triggered by events, are automatically scheduled for execution on compute nodes. Notably, the serverless computing model does not require the manual provisioning of virtual machines; instead, FaaS enables load-based billing and auto-scaling according to the workload, reducing costs and making scheduling more efficient. While early serverless programming models only supported stateless functions and severely restricted program composition, recently proposed systems offer greater flexibility by adopting ideas from actor and dataflow programming. This paper presents a survey of actor-like programming abstractions for stateful serverless computing, and provides a characterization of their properties and highlights their origin.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 59.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 74.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Agha, G.: Concurrent object-oriented programming. Commun. ACM 33(9), 125–141 (1990). https://doi.org/10.1145/83880.84528

  2. Agha, G.A.: Actors: a model of concurrent computation in distributed systems (parallel processing, semantics, open, programming languages, artificial intelligence). Ph.D. thesis, University of Michigan, USA (1985). http://hdl.handle.net/2027.42/160629

  3. Agha, G.A.: ACTORS: A Model of Concurrent Computation in Distributed Systems. Series in Artificial Intelligence, The MIT Press, Cambridge (1986)

    Google Scholar 

  4. Akhter, A., Fragkoulis, M., Katsifodimos, A.: Stateful functions as a service in action. Proc. VLDB Endow. 12(12), 1890–1893 (2019). https://doi.org/10.14778/3352063.3352092. http://www.vldb.org/pvldb/vol12/p1890-akhter.pdf

  5. Akidau, T., et al.: The dataflow model: a practical approach to balancing correctness, latency, and cost in massive-scale, unbounded, out-of-order data processing. Proc. VLDB Endow. 8(12), 1792–1803 (2015). https://doi.org/10.14778/2824032.2824076. http://www.vldb.org/pvldb/vol8/p1792-Akidau.pdf

  6. Amazon Web Services: AWS Lambda (2023). https://aws.amazon.com/lambda/. Accessed 20 Mar 2023

  7. Armstrong, J.: Erlang-a survey of the language and its industrial applications. In: Proceedings of the INAP, vol. 96, pp. 16–18 (1996)

    Google Scholar 

  8. Armstrong, J.: Making reliable distributed systems in the presence of software errors. Ph.D. thesis, KTH Royal Institute of Technology, Stockholm, Sweden (2003). https://nbn-resolving.org/urn:nbn:se:kth:diva-3658

  9. Armstrong, J., Virding, R., Williams, M.: Concurrent Programming in ERLANG. Prentice Hall, Hoboken (1993)

    Google Scholar 

  10. Baduel, L., et al.: Programming, composing, deploying for the grid. In: Cunha, J.C., Rana, O.F. (eds.) Grid Computing: Software Environments and Tools, pp. 205–229. Springer, London (2006). https://doi.org/10.1007/1-84628-339-6_9

  11. Bainomugisha, E., Carreton, A.L., Cutsem, T.V., Mostinckx, S., Meuter, W.D.: A survey on reactive programming. ACM Comput. Surv. 45(4), 52:1–52:34 (2013). https://doi.org/10.1145/2501654.2501666

  12. Baldini, I., et al.: Serverless computing: current trends and open problems. In: Chaudhary, S., Somani, G., Buyya, R. (eds.) Research Advances in Cloud Computing, pp. 1–20. Springer, Singapore (2017). https://doi.org/10.1007/978-981-10-5026-8_1

    Chapter  Google Scholar 

  13. Bernstein, P., Bykov, S., Geller, A., Kliot, G., Thelin, J.: Orleans: distributed virtual actors for programmability and scalability. Technical report MSR-TR-2014-41 (2014). https://www.microsoft.com/en-us/research/publication/orleans-distributed-virtual-actors-for-programmability-and-scalability/

  14. de Boer, F.S., et al.: A survey of active object languages. ACM Comput. Surv. 50(5), 76:1–76:39 (2017). https://doi.org/10.1145/3122848

  15. Brandauer, S., et al.: Parallel objects for multicores: a glimpse at the parallel language Encore. In: Bernardo, M., Johnsen, E.B. (eds.) SFM 2015. LNCS, vol. 9104, pp. 1–56. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-18941-3_1

    Chapter  Google Scholar 

  16. Burckhardt, S., et al.: Netherite: efficient execution of serverless workflows. Proc. VLDB Endow. 15(8), 1591–1604 (2022). https://www.vldb.org/pvldb/vol15/p1591-burckhardt.pdf

  17. Burckhardt, S., Gillum, C., Justo, D., Kallas, K., McMahon, C., Meiklejohn, C.S.: Durable functions: semantics for stateful serverless. Proc. ACM Program. Lang. 5(OOPSLA), 1–27 (2021). https://doi.org/10.1145/3485510

  18. Bykov, S., Geller, A., Kliot, G., Larus, J.R., Pandya, R., Thelin, J.: Orleans: cloud computing for everyone. In: Chase, J.S., Abbadi, A.E. (eds.) ACM Symposium on Cloud Computing in Conjunction with SOSP 2011, SOCC ’11, Cascais, Portugal, 26–28 October 2011, p. 16. ACM (2011). https://doi.org/10.1145/2038916.2038932

  19. Carbone, P., Ewen, S., Fóra, G., Haridi, S., Richter, S., Tzoumas, K.: State management in Apache Flink®: consistent stateful distributed stream processing. Proc. VLDB Endow. 10(12), 1718–1729 (2017). https://doi.org/10.14778/3137765.3137777. http://www.vldb.org/pvldb/vol10/p1718-carbone.pdf

  20. Carbone, P., Katsifodimos, A., Ewen, S., Markl, V., Haridi, S., Tzoumas, K.: Apache Flink™: stream and batch processing in a single engine. IEEE Data Eng. Bull. 38(4), 28–38 (2015). http://sites.computer.org/debull/A15dec/p28.pdf

  21. Caromel, D., Henrio, L., Serpette, B.P.: Asynchronous and deterministic objects. In: Jones, N.D., Leroy, X. (eds.) Proceedings of the 31st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2004, Venice, Italy, 14–16 January 2004, pp. 123–134. ACM (2004). https://doi.org/10.1145/964001.964012

  22. Castro, P.C., Ishakian, V., Muthusamy, V., Slominski, A.: The rise of serverless computing. Commun. ACM 62(12), 44–54 (2019). https://doi.org/10.1145/3368454

  23. Chandy, K.M., Lamport, L.: Distributed snapshots: Determining global states of distributed systems. ACM Trans. Comput. Syst. 3(1), 63–75 (1985). https://doi.org/10.1145/214451.214456

  24. Clebsch, S., Drossopoulou, S., Blessing, S., McNeil, A.: Deny capabilities for safe, fast actors. In: Boix, E.G., Haller, P., Ricci, A., Varela, C.A. (eds.) Proceedings of the 5th International Workshop on Programming Based on Actors, Agents, and Decentralized Control, AGERE! 2015, Pittsburgh, PA, USA, 26 October 2015, pp. 1–12. ACM (2015). https://doi.org/10.1145/2824815.2824816

  25. Dean, J., Ghemawat, S.: MapReduce: simplified data processing on large clusters. Commun. ACM 51(1), 107–113 (2008). https://doi.org/10.1145/1327452.1327492

  26. Dragoni, N.: Microservices: yesterday, today, and tomorrow. In: Present and Ulterior Software Engineering, pp. 195–216. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-67425-4_12

    Chapter  Google Scholar 

  27. Eldeeb, T., Bernstein, P.: Transactions for distributed actors in the cloud. Technical report MSR-TR-2016-1001 (2016). https://www.microsoft.com/en-us/research/publication/transactions-distributed-actors-cloud-2/

  28. Elnozahy, E.N., Alvisi, L., Wang, Y., Johnson, D.B.: A survey of rollback-recovery protocols in message-passing systems. ACM Comput. Surv. 34(3), 375–408 (2002). https://doi.org/10.1145/568522.568525

  29. The Apache Software Foundation: Apache Flink stateful functions (2023). https://nightlies.apache.org/flink/flink-statefun-docs-stable/. Accessed 18 May 2023

  30. Goldstein, J., et al.: A.M.B.R.O.S.I.A: providing performant virtual resiliency for distributed applications. Proc. VLDB Endow. 13(5), 588–601 (2020). https://doi.org/10.14778/3377369.3377370. http://www.vldb.org/pvldb/vol13/p588-goldstein.pdf

  31. Google Cloud: Google Cloud Functions (2023). https://cloud.google.com/functions. Accessed 28 May 2023

  32. Hähnle, R.: The abstract behavioral specification language: a tutorial introduction. In: Giachino, E., Hähnle, R., de Boer, F.S., Bonsangue, M.M. (eds.) FMCO 2012. LNCS, vol. 7866, pp. 1–37. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-40615-7_1

    Chapter  Google Scholar 

  33. Haller, P.: On the integration of the actor model in mainstream technologies: the Scala perspective. In: Agha, G.A., Bordini, R.H., Marron, A., Ricci, A. (eds.) Proceedings of the 2nd Edition on Programming Systems, Languages and Applications Based on Actors, Agents, and Decentralized Control Abstractions, AGERE! 2012, 21–22 October 2012, Tucson, Arizona, USA, pp. 1–6. ACM (2012). https://doi.org/10.1145/2414639.2414641

  34. Haller, P., Odersky, M.: Scala actors: unifying thread-based and event-based programming. Theor. Comput. Sci. 410(2–3), 202–220 (2009). https://doi.org/10.1016/j.tcs.2008.09.019

  35. Helland, P.: Life beyond distributed transactions: an apostate’s opinion. In: Third Biennial Conference on Innovative Data Systems Research, CIDR 2007, Asilomar, CA, USA, 7–10 January 2007, Online Proceedings, pp. 132–141 (2007). http://www.cidrdb.org/, http://cidrdb.org/cidr2007/papers/cidr07p15.pdf

  36. Hellerstein, J.M., et al.: Serverless computing: one step forward, two steps back. In: 9th Biennial Conference on Innovative Data Systems Research, CIDR 2019, Asilomar, CA, USA, 13–16, January 2019, Online Proceedings (2019). http://www.cidrdb.org/, http://cidrdb.org/cidr2019/papers/p119-hellerstein-cidr19.pdf

  37. de Heus, M., Psarakis, K., Fragkoulis, M., Katsifodimos, A.: Transactions across serverless functions leveraging stateful dataflows. Inf. Syst. 108, 102015 (2022). https://doi.org/10.1016/j.is.2022.102015

    Article  Google Scholar 

  38. Hewitt, C., Baker, H.G.: Laws for communicating parallel processes. In: Gilchrist, B. (ed.) Information Processing, Proceedings of the 7th IFIP Congress 1977, Toronto, Canada, 8–12 August 1977, pp. 987–992. North-Holland (1977)

    Google Scholar 

  39. Hewitt, C., Bishop, P.B., Steiger, R.: A universal modular ACTOR formalism for artificial intelligence. In: Nilsson, N.J. (ed.) Proceedings of the 3rd International Joint Conference on Artificial Intelligence. Stanford, CA, USA, 20–23 August 1973, pp. 235–245. William Kaufmann (1973). http://ijcai.org/Proceedings/73/Papers/027B.pdf

  40. IBM Corp.: IBM Cloud Functions (2020). https://cloud.ibm.com/functions/. Accessed 28 May 2023

  41. Johnsen, E.B., Hähnle, R., Schäfer, J., Schlatte, R., Steffen, M.: ABS: a core language for abstract behavioral specification. In: Aichernig, B.K., de Boer, F.S., Bonsangue, M.M. (eds.) FMCO 2010. LNCS, vol. 6957, pp. 142–164. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-25271-6_8

    Chapter  Google Scholar 

  42. Jonas, E., et al.: Cloud programming simplified: A Berkeley view on serverless computing. CoRR abs/1902.03383 (2019). http://arxiv.org/abs/1902.03383

  43. Koster, J.D., Cutsem, T.V., Meuter, W.D.: 43 years of actors: a taxonomy of actor models and their key properties. In: Clebsch, S., Desell, T., Haller, P., Ricci, A. (eds.) Proceedings of the 6th International Workshop on Programming Based on Actors, Agents, and Decentralized Control, AGERE 2016, Amsterdam, The Netherlands, 30 October 2016, pp. 31–40. ACM (2016). https://doi.org/10.1145/3001886.3001890

  44. Kraft, P., Kazhamiaka, F., Bailis, P., Zaharia, M.: Data-parallel actors: a programming model for scalable query serving systems. In: Phanishayee, A., Sekar, V. (eds.) 19th USENIX Symposium on Networked Systems Design and Implementation, NSDI 2022, Renton, WA, USA, 4–6 April 2022, pp. 1059–1074. USENIX Association (2022). https://www.usenix.org/conference/nsdi22/presentation/kraft

  45. Kreps, J., Narkhede, N., Rao, J.: Kafka: a distributed messaging system for log processing. In: Proceedings of the NetDB, vol. 11, pp. 1–7. Athens, Greece (2011)

    Google Scholar 

  46. Lightbend Inc: Akka (2022). https://akka.io/. Accessed 07 July 2022

  47. Lightbend Inc: Kalix (2023). https://www.kalix.io/. Accessed 18 May 2023

  48. Lin, J., Lee, M., Yu, I.C., Johnsen, E.B.: Modeling and simulation of Spark Streaming. In: Barolli, L., Takizawa, M., Enokido, T., Ogiela, M.R., Ogiela, L., Javaid, N. (eds.) 32nd IEEE International Conference on Advanced Information Networking and Applications, AINA 2018, Krakow, Poland, 16–18 May 2018, pp. 407–413. IEEE Computer Society (2018). https://doi.org/10.1109/AINA.2018.00068

  49. Mampage, A., Karunasekera, S., Buyya, R.: A holistic view on resource management in serverless computing environments: taxonomy and future directions. ACM Comput. Surv. 54(11s), 222:1–222:36 (2022). https://doi.org/10.1145/3510412

  50. McCune, R.R., Weninger, T., Madey, G.: Thinking like a vertex: a survey of vertex-centric frameworks for large-scale distributed graph processing. ACM Comput. Surv. 48(2), 25:1–25:39 (2015). https://doi.org/10.1145/2818185

  51. Microsoft: Azure Functions (2023). https://azure.microsoft.com/en-us/products/functions. Accessed 28 May 2023

  52. Miller, H., Haller, P., Odersky, M.: Spores: a type-based foundation for closures in the age of concurrency and distribution. In: Jones, R. (ed.) ECOOP 2014. LNCS, vol. 8586, pp. 308–333. Springer, Heidelberg (2014). https://doi.org/10.1007/978-3-662-44202-9_13

    Chapter  Google Scholar 

  53. Moritz, P., et al.: Ray: a distributed framework for emerging AI applications. In: Arpaci-Dusseau, A.C., Voelker, G. (eds.) 13th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2018, Carlsbad, CA, USA, 8–10 October 2018, pp. 561–577. USENIX Association (2018). https://www.usenix.org/conference/osdi18/presentation/nishihara

  54. Murray, D.G., McSherry, F., Isaacs, R., Isard, M., Barham, P., Abadi, M.: Naiad: a timely dataflow system. In: Kaminsky, M., Dahlin, M. (eds.) ACM SIGOPS 24th Symposium on Operating Systems Principles, SOSP ’13, Farmington, PA, USA, 3–6 November 2013, pp. 439–455. ACM (2013). https://doi.org/10.1145/2517349.2522738

  55. Pons, D.B., Sutra, P., Artigas, M.S., París, G., López, P.G.: Stateful serverless computing with Crucial. ACM Trans. Softw. Eng. Methodol. 31(3), 39:1–39:38 (2022). https://doi.org/10.1145/3490386

  56. Psarakis, K., Zorgdrager, W., Fragkoulis, M., Salvaneschi, G., Katsifodimos, A.: Stateful entities: object-oriented cloud applications as distributed dataflows. In: Tanca, L., Luo, Q., Polese, G., Caruccio, L., Oriol, X., Firmani, D. (eds.) Proceedings 27th International Conference on Extending Database Technology, EDBT 2024, Paestum, Italy, March 25–March 28, pp. 15–21. OpenProceedings.org (2024). https://doi.org/10.48786/edbt.2024.02

  57. Sang, B., Petri, G., Ardekani, M.S., Ravi, S., Eugster, P.: Programming scalable cloud services with AEON. In: Proceedings of the 17th International Middleware Conference, Trento, Italy, 12–16 December 2016, p. 16. ACM (2016). https://doi.org/10.1145/2988336.2988352

  58. Sang, B., Roman, P., Eugster, P., Lu, H., Ravi, S., Petri, G.: PLASMA: programmable elasticity for stateful cloud computing applications. In: Bilas, A., Magoutis, K., Markatos, E.P., Kostic, D., Seltzer, M.I. (eds.) EuroSys ’20: Fifteenth EuroSys Conference 2020, Heraklion, Greece, 27–30 April 2020, pp. 42:1–42:15. ACM (2020). https://doi.org/10.1145/3342195.3387553

  59. Schäfer, J., Poetzsch-Heffter, A.: JCoBox: generalizing active objects to concurrent components. In: D’Hondt, T. (ed.) ECOOP 2010. LNCS, vol. 6183, pp. 275–299. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-14107-2_13

    Chapter  Google Scholar 

  60. Sirjani, M., de Boer, F.S., Movaghar-Rahimabadi, A.: Modular verification of a component-based actor language. J. Univers. Comput. Sci. 11(10), 1695–1717 (2005). https://doi.org/10.3217/jucs-011-10-1695

  61. Spenger, J., Carbone, P., Haller, P.: Portals: an extension of dataflow streaming for stateful serverless. In: Scholliers, C., Singer, J. (eds.) Proceedings of the 2022 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, Onward! 2022, Auckland, New Zealand, 8–10 December 2022, pp. 153–171. ACM (2022). https://doi.org/10.1145/3563835.3567664

  62. Sreekanti, V., et al.: Cloudburst: stateful functions-as-a-service. Proc. VLDB Endow. 13(11), 2438–2452 (2020). http://www.vldb.org/pvldb/vol13/p2438-sreekanti.pdf

  63. Tardieu, O., Grove, D., Bercea, G., Castro, P., Cwiklik, J., Epstein, E.A.: Reliable actors with retry orchestration. Proc. ACM Program. Lang. 7(PLDI), 1293–1316 (2023). https://doi.org/10.1145/3591273

  64. Turin, G., Borgarelli, A., Donetti, S., Damiani, F., Johnsen, E.B., Tarifa, S.L.T.: Predicting resource consumption of Kubernetes container systems using resource models. J. Syst. Softw. 203, 111750 (2023). https://doi.org/10.1016/j.jss.2023.111750

  65. Yonezawa, A., Briot, J., Shibayama, E.: Object-oriented concurrent programming in ABCL/1. In: Meyrowitz, N.K. (ed.) Conference on Object-Oriented Programming Systems, Languages, and Applications, OOPSLA 1986, Portland, Oregon, USA, Proceedings, pp. 258–268. ACM (1986). https://doi.org/10.1145/28697.28722

  66. Zaharia, M., et al.: Resilient distributed datasets: a fault-tolerant abstraction for in-memory cluster computing. In: Gribble, S.D., Katabi, D. (eds.) Proceedings of the 9th USENIX Symposium on Networked Systems Design and Implementation, NSDI 2012, San Jose, CA, USA, 25–27 April 2012, pp. 15–28. USENIX Association (2012). https://www.usenix.org/conference/nsdi12/technical-sessions/presentation/zaharia

  67. Zhang, H., Cardoza, A., Chen, P.B., Angel, S., Liu, V.: Fault-tolerant and transactional stateful serverless workflows. In: 14th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2020, Virtual Event, 4–6 November 2020, pp. 1187–1204. USENIX Association (2020). https://www.usenix.org/conference/osdi20/presentation/zhang-haoran

Download references

Acknowledgements

This work was partially funded by Digital Futures, the Swedish Foundation for Strategic Research (under Grant No.: BD15-0006), Horizon Europe (SovereignEdge.Cognit under Grant No.: 101092711), as well as RISE AI.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Philipp Haller .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2024 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Spenger, J., Carbone, P., Haller, P. (2024). A Survey of Actor-Like Programming Models for Serverless Computing. In: de Boer, F., Damiani, F., Hähnle, R., Broch Johnsen, E., Kamburjan, E. (eds) Active Object Languages: Current Research Trends. Lecture Notes in Computer Science, vol 14360. Springer, Cham. https://doi.org/10.1007/978-3-031-51060-1_5

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-51060-1_5

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-51059-5

  • Online ISBN: 978-3-031-51060-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics