
AWS re:Invent 2018: Amazon DynamoDB Deep Dive: Advanced Design Patterns for DynamoDB (DAT401)
About this video
Rick Houlihan's AWS re:Invent 2018 deep dive on advanced DynamoDB design patterns. It covers index overloading, GSI sharding, composite keys, graph processing and transactions.
Why it appears in the archive
The go-to recommendation for learning DynamoDB data modeling, with many saying it made access-pattern-driven design click.
AI-generated summary and labels from the source dataset; verify important details against the video. Source & credits.
From the Hacker News discussion
If you go single table you can use filtered indexes if your database supports it to speed up queries instead of having to do a row by row search with a where clause. Personally this seems like a job for DynamoDB but that’s a whole beast unto itself. You must know the queries you will do to the database before hand as that guides how you craft it. There’s an amazing talk at reinvent that is given almost every year on creating a DynamoDB schema ( [VIDEO] ) I would normalize as the theory says and then denormalize as performance requires it.
Read original comment ↗AWS re:invent 2018 talks: [VIDEO] He has a sequence of 2-3 great talks on DynamoDB, the history of relational databases and the rise of access-pattern oriented db design.
Read original comment ↗I've seen this done for new projects, and it works really well. If your data access patterns are truly relational (varied lookup paths) then it is probably not the right tool, but many apps can be modeled in a way that DDB handles well. Highly recommended viewing: [VIDEO] this talk explains how relational data can be efficiently modeled for key-value stores.
Read original comment ↗We realized how great Dynamo was only after we migrated off AWS. Dynamo was a key factor to us when we were releasing the MVP of our News API [0]. We used Dynamo, ElasticSearch, Lambda and could make it running in 60 days while being full-time employed. Also, the best tech talk I saw was given by Rick Houlihan on re:Invent [1] I highly recommend every engineer to watch it: it's a great overview of SQL vs NoSQL [0] [LINK] [1] [VIDEO]
Read original comment ↗Rick Houlihan did a talk a few years ago about designing the data later for an application using dynamodb. The most common reaction I get from people I show it to- most of them Amazon SDEs who operate services that use Dynamodb- is "Holy shit what is this wizardry?!" [VIDEO] One of the biggest mistakes people make with dynamo is thinking that it's just a relational database with no relations. It's not. It's an incredible system, but it requires a lot of deep knowledge to get the full benefits, and it requires you, often, to design your data layer very well up-front. I actually don't recommend using it for a system that hasn't mostly stabilized in design. But when used right, it's an incredibly performant beast of a data store.
Read original comment ↗For explicitness & searchability, commenting with the title of this talk, which is indeed excellent , not limited to DynamoDB, and which was kind of a revelation after years of using DynamoDB suboptimally: Rick Houlihan - AWS re:Invent 2018: Amazon DynamoDB Deep Dive: Advanced Design Patterns for DynamoDB (DAT401) , [VIDEO] It should be watched along with reading the associated doc: [LINK]
Read original comment ↗This is the video I recommend to others when working with dynamodb. The video is by Rick Houlihan about dynamodb modeling. In my experience most developers that complain about dynamodb don't fully understand it. [VIDEO]
Read original comment ↗While the move seems to be towards NewSQL databases (Spanner/CockroachDB), the answer to relations in NoSQL is to model the data differently. This can generally resolve a lot of the problems inherent in the need for relations. This might not be useful advice for everyone, but I can highly recommend this youtube video on DynamoDB data modelling: [VIDEO]
Read original comment ↗