A Language and Its Compiler for Programming Serverless Applications
Á. Révész, Norbert Pataki · 2024
Containers are lightweight and easy to deploy and configure, so containerization has become an essential approach in modern software engineering. There is still a need for a higher abstraction for service which eliminates further configuration and deployment costs. However, a new service layer is introduced which is called Function-As-A-Service (FaaS). FaaS enables developers to deploy functions as single code functions. These functions are mostly common operations used by multiple microservices in service solutions. However, as standalone functions are deployed, this approach is called serverless programming. The ability of deploying standalone functions leverages code reusability and enables further abstractions. When discussing function as a mathematical term the composition naturally gets mentioned. Having these FaaS instances, functional programming paradigm and the need of orchestration in mind, we have gathered requirements and planned a functional programming language that is deployed on a distributed FaaS cluster enabling the development of FaaS function instances in composition. In this paper, we propose an approach for developing serverless applications in a seamless way. We define a programming language that is able to describe complex calculations. We developed a compiler that generates the necessary packets for deploying standalone functions in the serverless realm.