Vercel edge functions
Simple enough for front-end developers but advanced enough for many use cases.
- ✅ Easiest system to develop and maintain
- ✅ Supports NPM packages and NodeJS globals
- ✅ 60 seconds execution time
- Only one region (not globally distributed). But you can contact sales to upgrade to get globally distributed multiple regions.
- ❌ No database infrastructure on premise. Must make external requests to get or save data.
- ❌ Routing is static, done by adding files/folders. It does support wildcard routing though, so it is powerful enough for most applications.
Use cases:
- Middleware. Aggregate, authenticate, and manipulate data before receiving on frontend.
- Proxy server to forward/manipulate data from any server to any other server. Perhaps you use a platform that does not support a custom SDK or NPM package. So, send the data to a Vercel edge function which will then save it to the SDK you need.
- For a proof-of-concept, if you don’t make many database calls, or if your app is ok with a bit of additional latency while communicating with an external database.
CloudFlare workers
An up-and-coming competitor to AWS/DigitalOcean. It has fewer services but is the easier to get started with. Their strength is the CloudFlare super fast globally distributed infrastructure.
- ✅ Easy to use KV (key-value) data storage (like caching to Redis or localStorage). Unlike other cache systems this is almost instantly globally distributed.
- ✅ Very fast execution and response time from anywhere in the world. Globally distributed edge computing by default!
- ❌ Does not support most NPM packages.
- ❌ Does not support logs retention or using a provider’s SDK. Hopefully your cloud logging provider allows sending data to an HTTP endpoint. Otherwise you’ll have to build it yourself.
Very limited but powerful use cases:
- Data fetching, manipulation, and caching. Globally-distributed permanent data store for any front-end or back-end application. Used as a central data store that multiple apps and platforms can all access, sync with each other.
- Proxy serving images or any other assets/data from the CloudFlare network. You can validate, authenticate, cache, and manipulate the request before serving the asset.
AWS Lambda
And similar offerings from Microsoft/Google.
- ✅ Industry standard at the moment because of a huge variety of powerful enterprise integrations/connections/permissions in the AWS/etc ecosystem. Very powerful, customizable, and extensible. Possible to do anything you can imagine.
- ❌ Can be complicated to manage connections/permissions to other cloud services.
General use, especially for enterprise and advanced applications. Recommended for companies that can afford to hire a dev-ops engineer.
Digital Ocean is a simpler alternative to AWS. It’s easier to configure and set up, but has fewer services and options.
- ✅ 15 minutes execution time (including initialization)
- Generous limits
- Scheduled function triggers available - currently in limited beta release
- 3-day log retention. Logs can be forwarded to Logtail, Datadog, and Papertrail
- ❌ Does not support Postgres connection pools
For companies that already use DigitalOcean and want to add edge functions but don’t want to use a different provider.