# DynamoDB

## Notes

* Each item has a unique primary key and any number of attributes.
* Scanning for an item means looking through **every item in a table** thus it is less efficient than query search.
* Table is a collection of items, and each item is a collection of attributes.

## Links

* [Intro to Dynamo](https://gist.github.com/jlafon/d8f91086e3d00c4bff3b)
* [Awesome DynamoDB](https://github.com/alexdebrie/awesome-dynamodb) - List of resources for learning about modeling, operating, and using Amazon DynamoDB.
* [SQL, NoSQL, and Scale: How DynamoDB scales where relational databases don't (2020)](https://www.alexdebrie.com/posts/dynamodb-no-bad-queries/)
* [dynamo](https://github.com/glassechidna/dynamo) - Dead-simple AWS DynamoDB CLI.
* [Using (and Ignoring) DynamoDB Best Practices with Serverless | Alex DeBrie (2019)](https://acloud.guru/series/serverlessconf-nyc-2019/view/dynamodb-best-practices)
* [Build with DynamoDB - Single-Table Design Pros and Cons (2020)](https://www.twitch.tv/videos/544223958)
* [DQL](https://github.com/stevearc/dql) - SQL-ish language for DynamoDB.
* [The DynamoDB Book: Data Modeling with NoSQL and DynamoDB](https://www.dynamodbbook.com/) ([HN](https://news.ycombinator.com/item?id=23193093))
* [5 Things I Learned from The DynamoDB Book (2020)](https://www.swyx.io/writing/dynamodb-book/) ([Twitter](https://twitter.com/swyx/status/1247585165766832128))
* [Rules for Data Modeling with DynamoDB (2020)](https://www.trek10.com/blog/the-ten-rules-for-data-modeling-with-dynamodb) ([HN](https://news.ycombinator.com/item?id=22813908))
* [Dynobase](https://dynobase.dev/) - Professional GUI Client for DynamoDB.
* [dynomite](https://github.com/softprops/dynomite) - Make your rust types fit DynamoDB and visa versa.
* [PynamoDB](https://github.com/pynamodb/PynamoDB) - Pythonic interface to Amazon's DynamoDB.
* [Introducing the GoLD Stack: Go + Lambda + DynamoDB (2020)](https://dev.to/prozz/introduction-to-the-gold-stack-5b66)
* [Modeling Graph Relationships in DynamoDB (2020)](https://medium.com/developing-koan/modeling-graph-relationships-in-dynamodb-c06141612a70)
* [Amazon DynamoDB Deep Dive: Advanced Design Patterns for DynamoDB (2018)](https://www.youtube.com/watch?v=HaEPXoXVf2k) ([Notes on NoSQL patterns](https://github.com/dideler/notes/blob/master/nosql-patterns.md))
* [How to understand DynamoDB](https://consulting.0x4447.com/articles/how_to/how-to-understand-dynamodb.html)
* [DynamoDB, explained](https://www.dynamodbguide.com/) - Primer on the DynamoDB NoSQL database.
* [Patterns: Serverless Rust + GraphQL + DynamoDB on AWS Lambda](https://github.com/codetalkio/patterns-serverless-rust)
* [Live Migration of DynamoDB Tables (2020)](https://codetalk.io/posts/2020-03-19-Live-Migration-of-DynamoDB-Tables.html)
* [dynamit-cli](https://github.com/floydspace/dynamodb-migrations-tool) - DynamoDB Migrations Tool CLI.
* [AsyncIO DynamoDB](https://github.com/HENNGE/aiodynamo) - Asynchronous, fast, pythonic DynamoDB Client. ([Docs](https://aiodynamo.readthedocs.io/en/latest/))
* [Best Practices for Designing and Architecting with DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/best-practices.html)
* [Rotary](https://github.com/akkoro/rotary) - ORM-like query library for DynamoDB.
* [dynein](https://github.com/awslabs/dynein) - DynamoDB CLI written in Rust.
* [graphql-ttl-transformer](https://github.com/flogy/graphql-ttl-transformer) - Enable DynamoDB's time-to-live feature to auto-delete old entries in your AWS Amplify API.
* [Comparing Fauna and DynamoDB: Architecture and Pricing (2020)](https://fauna.com/blog/comparing-fauna-and-dynamodb) ([HN](https://news.ycombinator.com/item?id=25363056))
* [Next.js + AWS DynamoDB](https://github.com/leerob/nextjs-aws-dynamodb)
* [jest-dynalite](https://github.com/freshollie/jest-dynalite) - Jest preset to run Dynalite (DynamoDB local) per test runner.
* [DynamoDB OneTable](https://github.com/sensedeep/dynamodb-onetable) - Access and management for one table designs with NodeJS.
* [DynamoDB JavaScript DocumentClient cheat sheet](https://github.com/dabit3/dynamodb-documentclient-cheat-sheet)
* [DynamoDB sessions at AWS re:Invent 2020](https://www.youtube.com/playlist?list=PL_EDAAla3DXWshFxx1R5P5MNaER84zHsU)
* [Serverless DynamoDB Local Plugin](https://github.com/99x/serverless-dynamodb-local) - Allows to run DynamoDB locally for serverless.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://bryan-guner.gitbook.io/knowledge/14-pure-education/knowledge-master/databases/dynamodb.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
