WTF is DynamoDB?

Chris Biscardi
InstructorChris Biscardi
Share this video with your friends

Social Share Links

Send Tweet

DynamoDB is a serverless-compatible database that AWS hosts and manages for you. It includes many of the features you'd expect from a database like backup and restore, transactions, an array of clients (GUI and CLI)

Instructor: [0:00] DynamoDB is a low latency serverless compatible database. It can handle scale you'll probably never see and comes with standard database features like encryption at rest, on-demand backup and restore, automated backup and a transparent caching layer to [inaudible] faster than millisecond performance.

[0:16] It's fully managed, which means you're not worrying about servers, containers or scaling and comes in a variety of pricing models to fit your use case, such as on-demand, provisioned and reserved.

[0:25] Unlike SQL databases, DynamoDB typically requires you to know your access patterns beforehand, but rewards you for this by giving you millisecond or microsecond performance. DynamoDB is not a good choice if you don't know your access patterns or need an analytical database.

[0:40] One example of this would be if you wanted all of your product managers to be able to write arbitrary SQL queries and run them against the database to find out various information.

[0:49] While DynamoDB is a key value document database in the NoSQL arena, it supports relations through an additional sort key.

[0:56] If you're taking advantage of features like global tables, DynamoDB SLA specifies 99.999 percent of time. This is about five minutes of downtime a year. The standard SLA gives 99.99 percent, which is closer to an hour a year of downtime.

[1:12] DynamoDB supports on-demand backup and restore, automated backup restore with point-in-time-recovery, expiring items using Time To Leave attributes, global tables which can replicate your DynamoDB table in many AWS regions, transactions which can guarantee higher consistency modeling for you reads and writes.

[1:30] DynamoDB Accelerator, which is an in-memory cache that can get you from millisecond response times to microsecond response times if you're comfortable with eventual consistency on your reads.

[1:39] When Amazon moved away from its final Oracle database, of which it has like 3,000 instances or something like that, DynamoDB ends up showing up a lot in their new architectures, especially around anything that needs slow latency.

[1:51] In contrast to some other hosted NoSQL database solutions that work well with serverless, DynamoDB is being used to support Amazon's core business during Prime Day, which is about 48 hours. It made 7.11 trillion calls to DynamoDB, peaking at 45.4 million requests per second.

[2:07] If you're looking for more resources, Alex has compiled the awesome DynamoDB GitHub repo. This includes links to interesting talks by Rick Houlihan on advanced DynamoDB design patterns.

[2:17] If you're not quite sure how a NoSQL database like DynamoDB can replace a SQL database that you might be used to using, these talks will show you how to fit your access patterns that you're used to doing in SQL into a DynamoDB world.

[2:28] There are a couple of gooey clients as well as the CLI and the programming language clients for accessing DynamoDB. This includes the NoSQL Workbench which allows you to data model your DynamoDB schemas, including all of your indexes and access patterns, as well as tools like Dynobase, which allow you to access all of your production DynamoDB instances in various regions.

[2:46] Overall, DynamoDB is great for serverless applications where you know the access patterns you're going to use that might need low latency.