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 details weren’t discussed in the main body of the book, but they’re available for you here to learn about. I strongly suggest purchasing atleast the Plus package for access to this material. I do feel like you may be lost without it.
Finally, the package includes the code for the 5 practical projects discussed in the main body of the book. This code allows you to see and deploy the real-life application using infrastructure as code (CloudFormation) and tinker with the data in the console.
The Plus Package is a step up over the Basic by providing two supplemental guides and code snippets. The best value however is in the video-format which is included in the Premium Package and discussed below.
Buy the Plus Package here.
Premium Package – $249 USD
The Premium package contains everything from the Plus Package with one addition:
- 6+ Hours of Complete Video Walkthroughs on all 22 Chapters from the book
For those of you that learn best from video formats, then this is the package for you. This package contains detailed videos on all 22 chapters of the book. Chapters range from 5 minutes or so to nearly an hour.
The level of detail here is truly impeccable. Alex does a great job of summarizing all the core concepts from the book but explains them in an intuitive and easy to grasp way.
My suggested method of learning leveraging the premium package is to first read over the chapter from the book, and follow that by listening to Alex explain the concepts in the videos. This will give you an opportunity to digest the information at your own speed, before getting the summary in the video format.
You may be asking yourself, is the premium package really worth it? Yes, just yes. The quality of these videos is fantastic and it acts as great supplemental material to re-enforce the topics.
Buy the Premium Package here.
Alex Debrie’s The DynamoDB Book is an excellent resource for learning the ins and outs of DynamoDB. Aimed at both beginners and folks that have experience with Dynamo, Alex does a phenomenal job of expalining the concepts in an intuitive way that’s easy to follow. The chapters build upon themselves, adding more relevant material and advanced concepts as you go along.
The practical examples are a welcomed addition to the book and provide you with relatable scenarios of applications you may see out in the wild. Alex’s explanations of how he comes to forming the Data Models and how he links them together with the access patterns is an excellent demonstration of how DynamoDB Data Modelling is done right.
I do believe the Premium Package is worth it – the video walkthroughs of each chapter are a godsend and re-enforce a lot of the material discussed in the book. But if you’re on a budget, the Basic or Plus packages will be just fine.
To support this website and Alex’s great work, you can use the following affiliate link for your purchase.