Looking to learn about the ins and outs of DynamoDB but don’t know where to start? The DynamoDB Book by Alex Debrie is an excellent resource that should be considered. If you’re in doubt of whether or not the book is worth it, or you just want to know what you’re getting into, this is the article for you.
DynamoDB – one of the most popular NoSQL databases in use today is a powerhouse of a tool. Released in 2012, it quickly became the de-facto choice for developers looking for scale, ease of use, and hands off database management.
But have you ever tried to learn about how to actually USE DynamoDB? In short, there’s a lot to grasp. A beginner gets quickly overwhelmed with DynamoDB specific terminology like Tables, Items, Collections, Partition Keys, Read Capacity Units, Global Secondary Indexes, and many many more. Even more, most of us are stuck in the RDBMS mindset and NoSQL concepts (some specific to DynamoDB itself) seem like magical trickery.
People like myself that started using DynamoDB right when it got released had to learn it by stumbling through the documentation and pure trial and error. I can confess – I made a lot of mistakes in my early days of Dynamo. But at the time, there just weren’t many great resources out there and much of the documentation was primitive at best.
Fast forward to today, there’s a bunch of great tutorials out there aimed at beginners like my recent DynamoDB Beginner Guide video on Youtube. But its near impossible to present ALL there is to DynamoDB in a short YouTube video – there’s just way too many topics to discuss.
This is where Alex Debrie’s The DynamoDB Book comes in. Alex released this book in 2020 and labels it as “the book he wishes he had when he started learning DynamoDB”. After reading the book myself, I can positively say that The DynamoDB Book is one of the best resources out there today to learn about Dynamo. The countless reviews on the product’s web page speak for themselves.
Today, Alex’s book packages have sold thousands of copies and The DynamoDB Book is my standard recommendation for folks looking to get started with Dynamo.
In this article, I want to walk you through a bit more about:
- Who The DynamoDB Book is for
- What You’ll Learn
- The Differences Between the Basic, Plus, and Premium Packages
So let’s jump right into it.
Part 1 – Who The DynamoDB Book Is For
After reading the book and watching video content from the Premium package, the book appeals to a broad range of audiences.
Firstly, for newcomers to DynamoDB
The DynamoDB Book is a fantastic resources for folks looking to ramp up quickly on the ins and outs of DynamoDB. It starts with the assumption that you have zero knowledge of DynamoDB and even many NoSQL concepts.
It gently introduces you to the fundamentals without overwhelming you with too many complex details. There’s a ton of practical examples that Alex talks through in addition to code snippets that re-enforce the ideas. Each chapter also contains summary sections that overview the core-concepts that were just discussed.
I feel that a newcomer to DynamoDB can quickly gain understanding progressively as they work their way through the chapters. The video content available in the Premium Package (more on that later) which is an excellent supplemental form of material. For folks like myself that prefer video format learning – this is truly a godsend.
Secondly, for those with some experience with DynamoDB
The DynamoDB Book is still useful for those of you that have worked with DynamoDB before. Even myself – a self-described DynamoDB veteran learned a couple tricks from reading through the pages.
Strategies like Single Table Data Modelling are the real highlight for me here as this is generally one of the most underutilized parts of DynamoDB. If you’ve been using DynamoDB as a general key-value store and not taking advance of Single Table Design, then this book is really going to open your eyes.
Further, if you’re familiar with DynamoDB but looking for table design examples for real-world practical projects, then Alex has you covered. Alex includes walks through how to leverage DynamoDB in four real-life project examples: a session management system, an e-commerce store, a deals site, and a github clone. Alex walks you through the use cases, ERD diagrams for the data models, and required access patterns.
All in all, The DynamoDB Book really has something for everyone regardless if you’re an absolute newbie or an experienced/advanced user. The breadth and depth of this book is remarkable, and I truly consider it to be a complete guide to DynamoDB.
Part 2 – What You’ll Learn
The book itself is divided into 22 different chapters ranging from “What is DynamoDB?” to “How To Think About Data Modelling”. My intention in this section is to highlight each of the chapters and provide a brief summary of what it contains. This should give you a good idea of what to look forward to.
As a reference, listed below are the titles of the 22 different chapters in the book:
- What is DynamoDB?
- Core Concepts
- Advanced Concepts
- The Three API Action Types
- Using the DynamoDB API
- How To Approach Data Modelling in DynamoDB
- The What, Why, and When of Single-Table Design in DynamoDB
- From Modelling to Implementation
- The Importance of Strategies
- Strategies for One-To-Many Relationships
- Strategies for Many-To-Many Relationships
- Strategies for Filtering
- Strategies for Sorting
- Strategies for Migrations
- Additional Strategies
- Data Modelling Examples
- (Practical Project) – Building a Session Store
- (Practical Project) – Building an E-Commerce Application
- (Practical Project) – Building Big Time Deals
- (Practical Project) – Recreating Github’s Backend
- Handling Migrations in our Github Example
PHEW – As you can tell, there’s a ton of content here to discuss. So lets jump in to some of the chapters to give you a preview of what you’ll learn.
Chapters 1 to 6 – The Fundamentals
The first 120 pages of the book introduce you to the fundamentals of DynamoDB. Here, you can expect to learn much of the basics involved with working with the NoSQL database.
In the first dozen pages or so, you’ll get an introduction to what DynamoDB is and why its such a useful NoSQL database option. Alex discusses how DynamoDB compares to traditional RDBMS engines, and how it compares to other popular NoSQL options such as MongoDB.
Afterwards, you’ll be exposed to many of the core concepts of DynamoDB. Things like Tables, Items, Attributes, Primary Keys, and Indexes. Many more advanced topics are built ontop of this foundational knowledge, so its important to spend some time here making sure you understand the basics.
Alex also touches on some more advanced concepts here such as DynamoDB Streams (basically item level change notifications for each record in your Table), TTL (time to live), the partitioning structure of DynamoDB, consistency, and limits.
After laying down the foundations, Alex switches gears to a usage based perspective. In chapters 4 through 6, he talks about how to actually work with DynamoDB and the basic API operations involved. This consists of item based actions, queries, and scans.
Another concept thoroughly discussed is the use of expressions. Expressions are effectively modification statements that operate ontop of your API operations. Common examples are Filter Expressions (for narrowing down results) and Condition Expressions (for ensuring a condition is true before the operation will execute).
Chapters 7 to 9 – Data Modelling
These three chapters introduce you to Data Modelling in DynamoDB.
Data Modelling in a NoSQL Database like Dynamo is vastly different than traditional methods like in an RDBMS. There aren’t any traditional relationships or foreign keys that link records back to existing tables. Since this is such a paradigm shift for many RDBMS users, Alex spends three chapters or so talking about all aspects of Data Modelling.
This includes topics like starting with your access patterns which is a mental model shift from RDBMS users. He also discusses the utility and advantages of using a Single Table Design which allows you to leverage one table for many use cases (a big no-no for typical RDBMS use cases).
Finally, Alex concludes this areas with a chapter dedicated to converting a Data Model to actual code. There’s a bunch of juicy tips here including adding Types to your record entries, attribute compression, and many more.
After reading these chapters, you’ll have a solid handle on how to effectively model your entities in DynamoDB, and which operations you’ll leverage to access your items.
Chapters 10 to 17 – Strategies
In my opinion, Chapters 10 through 16 are where the real depth is in The DynamoDB Book. The strategies discussed are effectively collections of methods to deal with certain use cases.
For example, a criticism of NoSQL databases is that they can’t easily support Many to Many relationships – WRONG! In this particular section, Alex walks you through strategies for making many to many possible such as using embedded records and adjacency lists.
Other strategies discussed in these chapters include one to many relationships, data filtering, sorting, and migrations.
I can’t stress enough how important these sections are. Many of the challenges we developers run into on a day to day basis is how to think about our data model to make our records accessible in an easy and efficient way. Since DynamoDB is ‘kind of special’, it requires careful thought of how to structure your data and apply these strategies.
These sections walk you through practical tips such as dealing with sorting and filtering as a way to make your data more accessible. Make sure to spend a bunch of time on these chapters since they contain hidden gems that you’ll be thankful for later on.
Chapters 18 to 22 – Real Life Project Examples
The great part about The DynamoDB Book is the abundance of examples. The final four chapters of the book are dedicated to discussing real practical use cases and how to build a DynamoDB data model / access pattern that satisfies them.
The nice part of these examples is that they slowly ramp up in difficulty. The first two are essentially warm-ups for the last two. They introduce you to basic concepts that are built upon more thoroughly in the latter two examples.
The four core applications are discussed here:
- Session Store – This involves an application that will be used for an authentication use case. The application much deal with access patterns such as “can this person log in with these credentials”?
- E-Commerce Application – This example is effectively a Amazon.com clone dealing with entities such as Customers, Orders, Addresses, and OrderItems. The goal here is to expose our customer information (orders, emails, addresses) in a clean way using a single table design.
- Big Time Deals – This application is a more complicated one with a more diverse set of access patterns. The goal is to create a clone of the popular slickdeals.net which collects and aggregates hot shopping deals. The access patterns are where the complexity lies here and Alex does an excellent job explaining strategies for caching ‘hot deals’ for efficient and cost-effective retrieval.
- Github Backend – The last example is to create a clone of Github’s backend. This example has a lot of moving pieces including Repositories, Users, Organizations, Pull Requests… and the list goes on. Alex creates a sophisticated ERD model to represent these concepts and access patterns to boot. This example is the creme de la creme of data modelling in DynamoDB. Alex takes this example a step further by discussing how we can modify our data models if our access patterns change over time (a very common problem in software development). This is a nice touch that adds a touch of practicality that we all need to deal with in our day to day life – bonus!
Basic vs Plus vs Premium Packages
There are three distinct packages to purchase from with The DynamoDB Book: Basic, Plus, and Premium. In this section I’ll overview the three different options including content, pricing, and value.
Basic Package – $79 USD
The Basic package is priced at $79 USD and is the simplest and most straight forward package. It contains:
- The 450 page DynamoDB Book (which comes in multiple formats including PDF, EPUB and MOBI)
- Six Cheatsheets or Reference Guides
The Cheatsheets are great reference material that contain compressed formats of the DynamoDB book. There’s summaries of sections including filtering, sorting, dealing with relationships, strategies, and so on. Many of these examples include working code snippets that you can easily drop in to your application.
There’s also a glossary section which contains definitions of key DynamoDB terms. This is a great piece of material to keep handy and “ctrl+f” for something when you need a quick syntax or definition confirmation.
Overall, the Basic Package is pretty good value to get exposed to and learn about Dynamo. But if you want to take your game to the next level, you should consider the Plus and Premium packages noted below.
Buy the Basic Package here.
Plus Package – $129 USD
The Plus package contains everything from the Basic Package and three more supplemental pieces of material:
- Analytics Supplement Guide (60 pages)
- Operations Supplement Guide (60 pages)
- Deployable and Working Code Examples for the 5 applications discussed in the book
The Analytics guide is useful for those of you looking to integrate your DynamoDB tables with other AWS focused Analytics services such as Redshift, AWS Glue/Athena, and DynamoDB Streams.
As you’ll learn in the book, DynamoDB is not well suited for OLAP style queries (i.e. fuzzy queries or analytical / grouping style queries). To facilitate these types of queries, data propagation into a separate more appropriate data store is recommended. In the Analytics Guide alex introduces you to these four services and how to leverage them in combination with DynamoDB.
The Operations guide discusses details on how to actually operate your DynamoDB table in a production setting. This includes discussions on authorization (through AWS IAM), provisioning, pricing, and backup/restores. These are essential topics that every developer needs to learn about. To be honest I was surprised these