Developer Resources

REST
* https://martinfowler.com/articles/richardsonMaturityModel.html
* https://alexkondov.com/tao-of-node
** Disagreements:
*** [Prefix API Routes](https://alexkondov.com/tao-of-node/#prefix-api-routes) – I’ve found adding a /v1 to your URLs to be problematic. When people do this, what I typically see done is, If you make a breaking change to one endpoint you end up increasing the version for all endpoints. This can either: A) Seem like “too big of a change” and so people make minor breaking changes without increasing the version, Or B) You have lots of versions and it’s hard for a client to stay up to date. Instead, I prefer to start implementing [Hypermedia Controls](https://martinfowler.com/articles/richardsonMaturityModel.html#level3) (via the content-type, and accepts headers) to handle this at the per-endpoint level.
*** Instead of [Favor Express](https://alexkondov.com/tao-of-node/#favor-express-as-framework), I might suggest looking at https://www.fastify.io/
*** Re: [Pin Dependency versions](https://alexkondov.com/tao-of-node/#pin-dependency-version), I think it’s ok to have your package.json versions loose, but you should be checking in your [package-lock.json](https://docs.npmjs.com/cli/v8/configuring-npm/package-lock-json) file and use [npm ci](https://docs.npmjs.com/cli/v8/commands/npm-ci)

GraphQL
* https://github.com/Shopify/graphql-design-tutorial/blob/master/TUTORIAL.md

DynamoDB
* https://www.alexdebrie.com/posts/dynamodb-single-table/