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.