boilerplate-lambda-container/notes/decisions.md

15 lines
1.0 KiB
Markdown
Raw Permalink Normal View History

# Architecture Decision Record
A powerful stack for building APIs that is flexible, performant, and easy to reason about.
* Cloud: AWS - status quo for QOS (we're not locked into it)
* CI/CD: Gitlab - multi-cloud, versatile, FOSS (ENA is already using it)
* Deployment: Terraform - declarative, IaC, multi-cloud
* Containers: Docker - consistency between environments, rootless in dev
* TypeScript: type-safety, anyone with JS experience can contribute (ServiceNow uses JS)
* Runtime: [Deno](https://deno.com/) - secure-by-default, URL-based module resolution, dependency locking, built-in toolchain
* API Layer: [hono](https://hono.dev/) - portable, fast, simple, automatic OpenAPI w/ [@hono/zod-openapi](https://hono.dev/examples/zod-openapi)
* OpenAPI UI: [scalar](https://scalar.com/)/[hono-api-reference](https://github.com/scalar/scalar/blob/main/packages/hono-api-reference/README.md) - offline-first, code generation
The strong alternative would be Python with FastAPI, which might be more suitable for smaller projects.