I. Introduction
Serverless computing, and in particular Function as a Service (FaaS), is becoming an increasingly popular cloud programming model [1], [2], fueled by the recent demand to host services on provisioned cluster infrastructures and the paradigm shift towards interconnected IoT applications, devices and platforms [3]–[5]. It offers an intuitive, event-based interface for developing cloud-based applications, that makes the writing and deployment of scalable microservices easier and cost effective. This computing model has additional advantages including lower operational and deployment costs due to its unique pricing policy (based on a pay-as-you-use model) where users do not explicitly provision or configure virtual machines (VMs) or containers but they only get charged based on the number of resources consumed by the application functions during execution [6], [7]. The serverless computing model has been successfully adopted in a wide range of application domains, including, processing event streams, next-generation web services and applications [8], [9], etc. All major commercial cloud service providers are now offering serverless computing platforms, including AWS Lambda (https://aws.amazon.com/lambda/), Google Cloud Functions (https://cloud.google.com/functions) and Azure Functions (https://azure.microsoft.com/en-gb/products/functions/).