๐
Awesome DynamoDB A handy list of resources for getting up to speed on modeling, operating, and using Amazon DynamoDB.
Contributions welcome!
Table of Contents
Rick Houlihan
Rick Houlihan gets his own section due to his mythical status among DynamoDB fans. His AWS re:Invent talks are always the most-watched sessions on YouTube. Rick is rarely seen outside his native habitat on the strip in Las Vegas or in the AWS War Room, but some astute developers have seen him in the wild, usually mumbling about how 'all data is relational'.
Rick's talks:
- AWS re:Invent 2021: Advanced Design Patterns
- AWS re:Invent 2020: Advanced Design Patterns Part 1 & Part 2
- AWS re:Invent 2019: Advanced Design Patterns
- AWS re:Invent 2018: Advanced Design Patterns
- AWS re:Invent 2017: Advanced Design Patterns
- DynamoDB Office Hours | Online banking service model
Books
- The DynamoDB Book. Comprehensive guide to data modeling with DynamoDB. Endorsed by Rick Houlihan and heavily used within Amazon & AWS.
Videos
- AWS re:Invent 2022: Deploy modern and effective data models with DynamoDB. Talk with Alex DeBrie and DynamoDB Principal Engineer Amrith Kumar that covers infrastructure, data modeling, and their interaction.
- AWS re:Invent 2021: Data Modeling with DynamoDB. Updated talk that discusses core principles with DynamoDB as well as key tips for designing your data model.
- AWS re:Invent 2020: Data Modeling with DynamoDB Part 1 & Part 2. Intermediate level talks on the concepts behind DynamoDB data modeling.
- AWS re:Invent 2018: DynamoDB Under the Hood. Really great talk from a DynamoDB engineer that dives into the architecture behind DynamoDB.
- AWS re:Invent 2019: Data Modeling with DynamoDB. A more intermediate level talk that will explain some of the principles behind data modeling with DynamoDB.
- DynamoDB Deep Dive (Course. A full course from the folks at Linux Academy on how to use DynamoDB.
- ServerlessConf 2019: Using (and Ignoring) DynamoDB Best Practices with Serverless. This talk focuses on using DynamoDB in Serverless applications.
- DynamoDB Relationships. A nice 30 minute video series from Gary Jennings that walks through examples of how to model different types of relationships in DynamoDB -- one-to-one, one-to-many, and many-to-many. Nice use of the NoSQL Workbench for DynamoDB as well.
- Videos from The DynamoDB Book. A playlist of three sample videos from The DynamoDB Book.
Written resources
- DynamoDB Best Practices Guide. From the AWS documentation, a list of best practices and examples for modeling with DynamoDB.
- DynamoDB Guide. A basic walkthrough to DynamoDB concepts, API actions, and mechanics, with some data modeling examples.
- From relational DB to single DynamoDB table: a step-by-step exploration. Awesome post from Forrest Brazeal with a step-by-step walkthrough of moving to a single-table design.
- How to switch from RDBMS to DynamoDB in 20 easy steps.... By Jeremy Daly, a funny and eternally useful list of steps for learning how to model with DynamoDB.
- Comparing multi and single table approaches to designing a DynamoDB data model. Paul Swail takes a look at the pros and cons of modeling with a single table in DynamoDB and provides recommendations on when to avoid it.
- Lessons learned using Single-table design with DynamoDB and GraphQL in production. A collection of great tips learned the hard way from Rafal Wilinski. Rafal is the creator of Dynobase, listed in the Tools section below.
- DynamoDB Document client cheatsheet. From the prolific Nader Dabit, this is a handy cheatsheet for using DynamoDB in JavaScript applications.
- Amazonโs DynamoDB โ 10 years later.
- DynamoDB Examples. An Amazon Web Services and DynamoDB community lead repository containing code and examples for developing with and using Amazon DynamoDB.
- Amazon DynamoDB Design Patterns. This repo contains sample data models and source code to demonstrate design patterns for Amazon DynamoDB.
- The Three DynamoDB Limits You Need to Know.
Tools
- Dynobase. Handy tool that makes it easy to view and manipulate your tables, generate application code, and more.
- NoSQL Workbench For Amazon DynamoDB. A tool similar MySQL workbench that lets you model data and interact with your tables without going to the AWS console.
- DynamoDB Toolbox. An open source project from Jeremy Daly that provides a number of helpful utilities for working with single-table designs in JavaScript. Unofficial winner of the 2019 Best Logo in Open Source award.
- Dynamoose. An open source modeling tool for Node.js projects, inspired by Mongoose.
- DynamoDB Read Stream. An open-source tool for reading data chunk by chunk. This tool is created for handling DynamoDB limitation for one response (1 MB).
- DynamoDB Pricing Calculator. Simple tool to calculate your DynamoDB costs
- DynamoDB Table Designer. Visual tool to help you create DynamoDB Table definitions without the knowledge of CreateTable syntax.
- Dynoexpr Typescript/Javascript expression builder library which immensely simplifies the DynamoDB.DocumentClient syntax.
- TypeDORM. Strongly typed object relational mapper built with single-table-design in mind, and inspired by TypeORM.
- LucidDynamodb A minimalistic wrapper to AWS DynamoDB.
- ElectroDB A DynamoDB library to ease the use of having multiple entities and complex hierarchical relationships in a single DynamoDB table.
- Alternator is a Scylla feature adding compatibility with Amazon DynamoDB. It can be used locally with Docker or in production.
- typesafe-dynamodb provides type safety and editor type hints to the
getItem
,putItem
,deleteItem
andquery
API (SDK v2) calls which understand the structure of data in your table. - SenseDeep includes a DynamoDB Studio with single-table aware browser, designer, migration manager, provisioner, and single table metrics.
- DynamoDB OneTable. DynamoDB library that makes single table designs using NodeJS much easier via a high-level type-safe API.
- Serverless Console Visual Studio Code extension DynamoDB console.
- DynamoDB CSV utility A utility that allows CSV import / export to DynamoDB on the command line.
- dynaglue TypeScript library for easily querying and updating against multi-collection/single-table designs
- dynamodb-size JavaScript library for estimating the size of DynamoDB objects
- DynamoDataTransform Dynamo Data Transform is an easy to use data transformation tool for DynamoDB
- dynamodb-shell. ddbsh is a simple CLI for DynamoDB modeled on isql, and the MySQL CLIs.
Uses
- Priority Queuing. This post describes how to convert any of your Amazon DynamoDB tables into a queue that can enqueue and dequeue, as you would do with any other large-scale queuing systems.
- Near-Real-Time Event Processing. This post evaluates multiple patterns for processing DynamoDB streams by using several AWS services that are part of AWS serverless computing. It also dives into the details about the most reliable and scalable pattern to perform near-real-time processing of DynamoDB streams to notify other systems and users, archive transactions, and replicate data to other data stores while ensuring ordered processing.
- Advanced Analytics & Visualizations. This blog post shows you how to build a big data pipeline that transitions the data from your DynamoDB table to Amazon S3. This helps you perform advanced analytics by using Amazon Athena, a fully managed Presto query service, and also helps you build visualizations and ad hoc analyses by using Amazon QuickSight.