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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Agha, G.: Concurrent object-oriented programming. Commun. ACM 33(9), 125–141 (1990). https://doi.org/10.1145/83880.84528
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
Agha, G.A.: ACTORS: A Model of Concurrent Computation in Distributed Systems. Series in Artificial Intelligence, The MIT Press, Cambridge (1986)
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
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
Amazon Web Services: AWS Lambda (2023). https://aws.amazon.com/lambda/. Accessed 20 Mar 2023
Armstrong, J.: Erlang-a survey of the language and its industrial applications. In: Proceedings of the INAP, vol. 96, pp. 16–18 (1996)
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
Armstrong, J., Virding, R., Williams, M.: Concurrent Programming in ERLANG. Prentice Hall, Hoboken (1993)
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
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
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
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/
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
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
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
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
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
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
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
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
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
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
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
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
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
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/
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
The Apache Software Foundation: Apache Flink stateful functions (2023). https://nightlies.apache.org/flink/flink-statefun-docs-stable/. Accessed 18 May 2023
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
Google Cloud: Google Cloud Functions (2023). https://cloud.google.com/functions. Accessed 28 May 2023
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
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
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
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
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
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
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)
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
IBM Corp.: IBM Cloud Functions (2020). https://cloud.ibm.com/functions/. Accessed 28 May 2023
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
Jonas, E., et al.: Cloud programming simplified: A Berkeley view on serverless computing. CoRR abs/1902.03383 (2019). http://arxiv.org/abs/1902.03383
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
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
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)
Lightbend Inc: Akka (2022). https://akka.io/. Accessed 07 July 2022
Lightbend Inc: Kalix (2023). https://www.kalix.io/. Accessed 18 May 2023
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
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
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
Microsoft: Azure Functions (2023). https://azure.microsoft.com/en-us/products/functions. Accessed 28 May 2023
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2024 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this chapter
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)