# 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.
