Browse Chapters
The Limitations of Edge Functions
Edge functions offer high performance but with tradeoffs. This page discusses the limitations of edge functions. The main limitations of edge functions are limited execution resources, limited access to data, limited language support, limited feature support, and disconnectedness from other cloud services.
Limited execution resources
Edge functions run on more spartan hardware setups than large clouds. And as such, compute resources are often limited. The most common way this limitation manifests is in short execution times. While large cloud serverless app providers allow functions to run for several minutes, edge functions are often limited to just a few seconds (if not less). This allows edge providers to quickly free up the compute resources for other providers.
Limited access to data
An edge function may be proximately closer to the user, but this can also potentially make it further from data sources that live elsewhere in the cloud. The information sources that an application uses, i.e. a relational database, a storage mechanism, or a message queue, must be strategically configured to suit the request/response round-trip of the edge function holistically. Edge function providers will sometimes offer edge storage options, such as key/value storage. In many practical cases, that is sufficient. But this limits what sorts of data can and should be stored at the edge. In other cases, data may need to be fetched deliberately from a specific endpoint (images taken by satellite, remote weather data and so on). There are many scenarios regarding the proximity of the user[s], the edge function[s] and the application’s data (which is potentially being fetched and returned from somewhere to somewhere). Limited access to data may negate any user-to-function-proximity advantages.
Limited language support
Most edge providers support only one or two programming languages. The most popular is JavaScript. Very few support more than a language or two.
Limited features and libraries
In addition to supporting only a language or two, most edge providers support only a subset of the total available features of a full cloud environment. This is because edge functions tend to run in resource-constrained environments with tight security requirements. Therefore, they do not expose common facilities like file systems, environment variables, or access to the process table.
Some of these same limitations are found in serverless app platforms that run in the cloud. For that reason, even cloud serverless apps may not be able to use all of the usual programming libraries off the shelf.
Disconnected from other cloud services
Because edge offerings tend to execute outside of the usual security perimeter and often on entirely different service providers than the cloud, this often means the edge services are disconnected from the data center services. Even things like policy controls may need to be specified again on the edge service.
Browse Chapters