Definition of Serverless App
A serverless app is an application composed of one or more serverless functions. When we package up a serverless function and ship it off to be run, the thing we are shipping is the serverless app.
Some platforms allow only one serverless function per serverless app. AWS Lambda is an example. Others, like Spin and Fermyon Cloud, allow one or more functions per app. In this model, each serverless function is coded separately, but together they are bundled into one deployable unit.
When discussing the definition of a serverless app, the separation is important not only for keeping each function simple but for allowing another highly desirable feature of serverless apps: An app can be composed of serverless functions written in different languages. And for WebAssembly serverless apps (where each unit is shipped as a binary), a wide variety of languages can be used to develop the separate parts of your deployable unit.
For the most part, it is acceptable to use the terms “serverless app” and “serverless function” interchangeably. In this guide, we tend to use serverless app because it is more generic (and also shorter to type). Where it is necessary to distinguish between the two, we do so carefully.
Just because something is called a “serverless function” does not mean that the program consists of only one function. A program written as a serverless function may have as many functions in it as a traditional program. This is one more reason why we prefer to call them serverless apps. It’s less confusing.
To round out the common terminology around serverless apps, we’ll define a few other things here. But serverless app is the term we use most frequently in this guide. Feel free to skip ahead if you’re exhausted with definitions.Browse Chapters