The cloud has its limits. And
arc itself is an abstraction with deliberate constraints. Whether we label them constraints or limits, they are trade-offs you need to be aware of when designing your software architecture for cloud functions.
Sometimes things with the cloud just fail, and you might not get a useful error. This means: one must consider retries — including manual retries — where you create / destroy / recreate infra workflows (and, accordingly,
.arc workflows are built to be run and re-run).
We call this situation immutable infrastructure to feel better! 💖
Cloud limits and gotchas
- Lambda cold starts are vicious on large Lambdas; the best antidote is to author small as possible Lambda functions (rule of thumb: sub 5MB compressed, including modules, usually results in sub-second execution)
- API Gateway: missing a route will return a 403, whereas it should properly return a 404
- Lambda functions cannot execute for longer than 15 minutes
- Lambda functions require you to
npm installto your project