Cloud computing has profoundly changed the way we design and deploy applications. Among the models that have become dominant in recent years, Function as a Service (FaaS) represents a radically different approach: instead of managing servers, containers, or even full platforms, developers simply write functions. These functions run on demand, consume resources only while executing, and then disappear. Simple at first glance, this model nevertheless raises technical, economic, and architectural questions that must be fully understood before adoption. Here’s what you really need to know about FaaS, beyond the cloud‑providers’ marketing hype.

Definition and Core Principles of FaaS
FaaS is a cloud‑computing execution model in which a provider takes care of the entire server infrastructure. The developer deploys only functions: autonomous code blocks, each designed to accomplish a specific task. These functions do not run continuously. They are triggered by a specific event (an HTTP request, the addition of a file to storage, a message in a queue), execute, then stop.
What distinguishes FaaS from other models such as PaaS (Platform as a Service) is the level of granularity. You do not deploy an entire application, but independent functional units. Each function can have its own language, its own dependencies, and evolve independently of the others. The provider handles resource allocation, scaling, and availability without any manual intervention.
Event‑Driven Code Execution
FaaS relies on an event‑driven paradigm. Concretely, a function does nothing until an event invokes it. A user submits a form? A function processes the data. An IoT sensor sends a measurement? A function records it in a database. A file is dropped into an S3 bucket? A function resizes or converts it.
This event‑driven model opposes the traditional model where a server runs continuously, waiting for requests. With FaaS there is no idle process. Triggers can be an API request, a database event, a message in a messaging system such as Kafka or RabbitMQ, or even a scheduled cron. The diversity of event sources makes FaaS extremely flexible for distributed architectures.
The Serverless Concept and Infrastructure Abstraction
FaaS is often presented as the purest form of Serverless. Of course, servers exist somewhere: the term simply means that the developer never has to worry about them. No provisioning of virtual machines, no operating‑system configuration, no OS‑level security‑patch management.
The abstraction goes further than PaaS. With a PaaS such as Heroku or Google App Engine, you deploy an application that runs continuously on a managed platform. With FaaS, the deployment unit is the function itself, and its lifecycle is entirely ephemeral. The cloud provider takes care of everything beneath the application layer: networking, temporary storage, underlying container orchestration, load distribution. The developer focuses exclusively on business logic.
Technical Operation of a FaaS Architecture
To understand how FaaS works in practice, one must look at what happens between the moment an event occurs and the moment a response is returned. This invisible mechanism for the end‑user involves several automatically managed steps.
Function Lifecycle: From Trigger to Shutdown
When an event triggers a function, the FaaS platform follows a multi‑phase process. First, it identifies the function associated with the event. If no instance of that function is already loaded in memory, the platform creates one: this is the initialization, which includes loading the runtime (Node.js, Python, Java, Go, etc.), the dependencies, and the code.
Next, the function executes. It receives the event as input, performs its processing, and returns a result or triggers an action. Execution time is limited: most providers impose a maximum timeout, typically between 5 and 15 minutes depending on the platform. Once execution finishes, the instance may remain “warm” for a few minutes to handle subsequent requests, or be destroyed if no new calls arrive.
This cycle creates a fundamentally different operation from a classic server. There is no persistent process. Each invocation is potentially independent, even though platforms sometimes reuse instances for performance reasons.
State Management and the Stateless Model
FaaS functions are designed to be stateless. This means a function retains no data between invocations. Every call starts from scratch: no persistent global variables, no in‑memory session, no guaranteed temporary file.
This constraint has major architectural implications. Any data that must survive across calls must be stored in an external service: a database (DynamoDB, Firestore, managed PostgreSQL), a distributed cache (Redis, Memcached), or a shared file system. Developers accustomed to classic web frameworks such as Django or Express must rethink their approach. You cannot keep a shopping cart in server memory; you must place it in an external datastore.
Statelessness also enables horizontal scaling. Since each function instance is interchangeable, the platform can launch dozens, hundreds, or thousands in parallel without state conflicts.
Major Benefits for Developers and Enterprises
FaaS is not just an elegant technical concept. It delivers concrete advantages that explain its growing adoption by both startups and large corporations.
Automatic Scalability and High Availability
One of the most immediate strengths of FaaS is automatic scaling. When traffic spikes, the platform automatically launches new function instances to absorb the load. When traffic drops, instances are terminated. There is no need to configure auto‑scaling rules, set thresholds, or define alarms.
For a business that experiences unpredictable traffic peaks (e.g., an e‑commerce site during sales, a media app during a viral event), this elasticity is invaluable. A classic service would require pre‑provisioning extra servers or risk overload. With FaaS, the platform adapts in real time. High availability is also handled by the provider: functions are replicated across multiple availability zones, reducing outage risk.
Cost Optimization: Pay‑Per‑Use Model
The economic model of FaaS is radically different from traditional hosting. You do not pay for a server that runs 24/7. You only pay for the actual execution time of functions, measured in milliseconds, and for the number of invocations.
Consider a concrete example: an API that processes 100 000 requests per month with an average execution time of 200 ms per request. On AWS Lambda in 2026, this costs only a few euros per month. An equivalent EC2 instance, even the smallest, would run continuously and cost between €15 and €30 per month. For intermittent or low‑volume workloads, the savings are significant. Conversely, for constant high‑volume workloads, the calculation can reverse: a function invoked millions of times per day may end up costing more than a dedicated server.
Challenges and Limitations to Consider
FaaS is not a silver bullet. Several technical and organizational constraints deserve serious attention before migrating an existing architecture or building a new project on this model.
Cold‑Start Problem
Cold start is the Achilles’ heel of FaaS. When a function has not been invoked for a while, the platform must spin up a full instance: load the runtime, libraries, and code. This adds latency ranging from a few tens of milliseconds (for a lightweight Python function) to several seconds (for a Java function with many dependencies).
By 2026, providers have made considerable progress. AWS offers SnapStart for Java and Provisioned Concurrency that keep pre‑warmed instances ready. Google Cloud Functions and Azure Functions provide similar mechanisms. However, these solutions incur extra cost and diminish one of FaaS’s main advantages: paying only for actual execution. For applications that require sub‑50 ms response times consistently, cold start remains a concern.
Debugging Complexity and Vendor Lock‑In
Debugging a FaaS application is considerably more complex than debugging a monolithic app. Functions run in a remote, ephemeral environment. You cannot attach a classic debugger, set breakpoints, or inspect memory state in real time. Debugging relies mainly on logs (CloudWatch, Stackdriver) and distributed tracing tools such as AWS X‑Ray or Jaeger.
Vendor lock‑in is another sensitive point. Each FaaS platform has its own event formats, configuration APIs, and integrations with other services. A function written for AWS Lambda does not deploy directly on Google Cloud Functions without modifications. Frameworks like the Serverless Framework or the open‑source project Knative try to mitigate this by providing an abstraction layer, but full portability remains an ideal that is hard to achieve in practice.
Observability also poses challenges. With dozens or hundreds of functions calling each other, understanding the flow of a request through the system requires specialized tools and disciplined log structuring.
Common Use Cases and Practical Applications
FaaS shines in certain scenarios and is less appropriate in others. Identifying the right use cases is key to extracting value from this model.
Real‑Time Data Processing and ETL
Event‑driven data processing is probably the most natural use case for FaaS. A CSV file is dropped into a storage bucket: a function parses, transforms, and inserts it into a database. A stream of logs arrives via Kafka: functions filter, enrich, and route messages to the appropriate systems.
ETL pipelines (Extract, Transform, Load) benefit especially from the model. Each pipeline stage can be an independent function, allowing separate evolution and scaling based on data volume. A French retail company processing sales data from its 200 stores can trigger functions on each transaction, aggregate results in near‑real time, and feed dashboards without maintaining a permanent Spark cluster.
Image and video processing is another classic case: automatic photo resizing, thumbnail generation, metadata extraction, filter application. These tasks are sporadic, parallelizable, and perfectly suited to FaaS.
Web Application Back‑ends and Mobile APIs
FaaS has also become a viable option for building API back‑ends. Coupled with an API‑gateway service, each endpoint can be served by a distinct function. The /users/login endpoint is handled by an authentication function, /orders/create by an order‑creation function, etc.
This approach works well for applications with variable traffic or APIs that are not constantly hit. A B2B mobile app that is mainly used during office hours, for example, generates almost no traffic at night or on weekends. With FaaS, the cost during those idle periods drops to zero.
Chatbots, webhooks, and third‑party integrations (Slack, Stripe, Twilio) are also natural candidates. These systems receive events unpredictably and must respond quickly without a dedicated server. Several French fintech firms use FaaS to handle payment notifications and partner callbacks.
Overview of Major FaaS Providers
The FaaS market is dominated by the three big cloud vendors, but alternatives exist for those seeking more flexibility.
- AWS Lambda : lthe pioneer launched in 2014, still the market leader. Supports a dozen languages, integrates with virtually all AWS services, and offers the most mature features (Lambda@Edge for CDN, SnapStart for Java, container support). Its ecosystem is the richest, but also carries the highest risk of vendor lock‑in.
- Google Cloud Functions : tightly integrated with Firebase, BigQuery, and other Google services; distinguished by its ease of use and strong performance on lightweight functions. The second generation (Gen 2), built on Cloud Run, offers greater flexibility on execution duration and allocated resources.
- Azure Functions : the natural choice for organizations already invested in the Microsoft ecosystem. Provides a “Durable Functions” mode to orchestrate complex workflows with state management, extending FaaS beyond its usual stateless model.
- Cloudflare Workers : a different approach based on V8 isolates rather than containers. Cold‑start times are virtually nonexistent (under 5 ms), making it attractive for ultra‑low‑latency edge functions.
- Knative et OpenFaaS : open‑source solutions that allow you to run FaaS on your own Kubernetes cluster. They provide total portability but require you to manage the underlying infrastructure, which erodes part of the serverless promise.
Choosing a provider depends on the existing ecosystem, team skills, and data‑sovereignty constraints. For French companies subject to strict regulatory requirements, sovereign cloud offerings such as OVHcloud or Scaleway are beginning to provide FaaS capabilities, although they still lag behind the US hyperscalers in functional maturity.
Function as a Service has fundamentally changed how technical teams design their architectures. By removing infrastructure management and introducing millisecond‑level billing, it has made the cloud accessible to projects that would never have justified a dedicated server. However, FaaS is not suitable for every context: constantly high‑load applications, long‑running jobs, or systems demanding ultra‑low latency may find better solutions elsewhere.
The prudent approach is to evaluate each component of your architecture independently. Some parts will benefit from being deployed as FaaS, while others will remain better served by containers or virtual machines. A hybrid architecture, where FaaS coexists with other deployment models, is often the most pragmatic. Start with a simple use case (a webhook, an image‑processing task, a low‑traffic API), measure the results, and expand gradually if the model proves advantageous.