<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>dynamodb &amp;mdash; Solved by Code</title>
    <link>https://kono.sh/tag:dynamodb</link>
    <description>Musings of a software engineer, dad, and geek at heart.</description>
    <pubDate>Wed, 29 Apr 2026 13:16:46 +0000</pubDate>
    <image>
      <url>https://i.snap.as/9W6K3NhL.png</url>
      <title>dynamodb &amp;mdash; Solved by Code</title>
      <link>https://kono.sh/tag:dynamodb</link>
    </image>
    <item>
      <title>Modeling relational data in a DynamoDB Single Table Design is hard to wrap your head around. Start your learning with these 3 resources</title>
      <link>https://kono.sh/modeling-relational-data-in-a-dynamodb-single-table-design-is-hard-to-wrap-your?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[If you want predictable, consistent performance (with single-digit ms response times) for your relational data model, you need to think differently. Start learning with these 3 resources.&#xA;&#xA;!--more--&#xA;&#xA;Even the title of this essay is hard to wrap your head around.&#xA;&#xA;But as someone who has built systems on DynamoDB where sub 8ms response times were maintained well past 5T (yes, trillion) records, I can tell you both the title and the concept are worth learning. To do it, you&#39;ll need to approach modeling from a different point of view.&#xA;&#xA;Thankfully, there&#39;s some excellent resources available. Start with these three.&#xA;&#xA;1. Official DynamoDB Docs&#xA;&#xA;The name is &#34;Best practices for modeling relational data in DynamoDB&#34;, from the AWS docs themselves. Covers a common, recognizable order entry and HR schema, showing the traditional relational model, and then an example of how to reapproach it with an access patterns mindset.&#xA;&#xA;2. Alex Debrie&#39;s one-to-many&#xA;&#xA;Through showing strategies for modeling and querying the most common relationship in a relational data model, Alex hits multiple bite-sized samples. Most devs who have used SQL will have the wheels start turning on how to connect this to more complex schemas they&#39;ve worked with in the past.&#xA;&#xA;3. trek10 Blog Post&#xA;&#xA;Much respect for tackling the Northwind DB as their example. If you&#39;ve been through a few SQL tutorials, you&#39;ll recognize that name. And if you&#39;ve been reading my earlier DDB posts, the video at the start of the post should look familiar.&#xA;&#xA;These three resources will show you the possibilities of thinking about your relational data models differently.&#xA;&#xA;Still stuck wrapping your head around a concept? Let me know in the comments.&#xA;&#xA;This was the Day 23 #ship30for30 #atomicEssay.&#xA;&#xA;#dynamodb #aws #crosspost&#xA;&#xA;---&#xD;&#xA;&#xD;&#xA;Thanks for reading. If you enjoyed the article subscribe via RSS feed or enter your email in the box below 👇&#xD;&#xA;&#xD;&#xA;!--emailsub--]]&gt;</description>
      <content:encoded><![CDATA[<p>If you want predictable, consistent performance (with single-digit ms response times) for your relational data model, you need to think differently. Start learning with these 3 resources.</p>



<p>Even the title of this essay is hard to wrap your head around.</p>

<p>But as someone who has built systems on DynamoDB where sub 8ms response times were maintained well past 5T (yes, trillion) records, I can tell you both the title and the concept are worth learning. To do it, you&#39;ll need to approach modeling from a different point of view.</p>

<p>Thankfully, there&#39;s some excellent resources available. Start with these three.</p>

<h3 id="1-official-dynamodb-docs-https-docs-aws-amazon-com-amazondynamodb-latest-developerguide-bp-relational-modeling-html" id="1-official-dynamodb-docs-https-docs-aws-amazon-com-amazondynamodb-latest-developerguide-bp-relational-modeling-html">1. <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-relational-modeling.html">Official DynamoDB Docs</a></h3>

<p>The name is “Best practices for modeling relational data in DynamoDB”, from the AWS docs themselves. Covers a common, recognizable order entry and HR schema, showing the traditional relational model, and then an example of how to reapproach it with an access patterns mindset.</p>

<h3 id="2-alex-debrie-s-one-to-many-https-www-alexdebrie-com-posts-dynamodb-one-to-many" id="2-alex-debrie-s-one-to-many-https-www-alexdebrie-com-posts-dynamodb-one-to-many">2. <a href="https://www.alexdebrie.com/posts/dynamodb-one-to-many/">Alex Debrie&#39;s one-to-many</a></h3>

<p>Through showing strategies for modeling and querying the most common relationship in a relational data model, Alex hits multiple bite-sized samples. Most devs who have used SQL will have the wheels start turning on how to connect this to more complex schemas they&#39;ve worked with in the past.</p>

<h3 id="3-trek10-blog-post-https-www-trek10-com-blog-dynamodb-single-table-relational-modeling" id="3-trek10-blog-post-https-www-trek10-com-blog-dynamodb-single-table-relational-modeling">3. <a href="https://www.trek10.com/blog/dynamodb-single-table-relational-modeling/">trek10 Blog Post</a></h3>

<p>Much respect for tackling the Northwind DB as their example. If you&#39;ve been through a few SQL tutorials, you&#39;ll recognize that name. And if you&#39;ve been reading my earlier DDB posts, the video at the start of the post should look familiar.</p>

<p>These three resources will show you the possibilities of thinking about your relational data models differently.</p>

<p>Still stuck wrapping your head around a concept? Let me know in the comments.</p>

<p>This was the Day 23 <a href="https://kono.sh/tag:ship30for30" class="hashtag"><span>#</span><span class="p-category">ship30for30</span></a> <a href="https://kono.sh/tag:atomicEssay" class="hashtag"><span>#</span><span class="p-category">atomicEssay</span></a>.</p>

<p><a href="https://kono.sh/tag:dynamodb" class="hashtag"><span>#</span><span class="p-category">dynamodb</span></a> <a href="https://kono.sh/tag:aws" class="hashtag"><span>#</span><span class="p-category">aws</span></a> <a href="https://kono.sh/tag:crosspost" class="hashtag"><span>#</span><span class="p-category">crosspost</span></a></p>

<hr/>

<p>Thanks for reading. If you enjoyed the article subscribe via <a href="https://kono.sh/feed/">RSS feed</a> or enter your email in the box below 👇</p>


]]></content:encoded>
      <guid>https://kono.sh/modeling-relational-data-in-a-dynamodb-single-table-design-is-hard-to-wrap-your</guid>
      <pubDate>Thu, 10 Nov 2022 20:02:23 +0000</pubDate>
    </item>
    <item>
      <title>So you want to learn DynamoDB... skip the fluff &amp; go right to the 400 level course with this video</title>
      <link>https://kono.sh/so-you-want-to-learn-dynamodb?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[If you want to learn DynamoDB, you need a video that makes you 🤯. Here&#39;s my reco for the best one on the topic.&#xA;&#xA;!--more--&#xA;&#xA;There are a lot of videos and blogs about DynamoDB.&#xA;&#xA;And I&#39;ve watched/read more than I care to admit. While most hit the basics, they tend to miss out on the advanced, real-world application. And very few give that [Keanu voice] &#34;Woah&#34; moment.&#xA;&#xA;But the #1 must watch video on DynamoDB I&#39;ve found is Advanced Design Patterns for DynamoDB by Rick Houlihan. (Plenty of Woahs waiting in this one)&#xA;&#xA;Here&#39;s a teaser of what it covers:&#xA;&#xA;Real, concrete examples of relational data modeled in DDB.&#xA;Partition Key and Secondary Key deep dives &amp; best practices&#xA;Examples of mixing different data types in a GSI (Index Overloading design pattern)&#xA;Access pattern analysis from one of the best in the biz.&#xA;An example with a dozen access patterns supported by two GSIs on a single table. 🤯 One of the single best aha moments of any DDB resource around.&#xA;&#xA;And so much more ...&#xA;&#xA;Honestly, this video changed my perspective and continues to influence each of my DDB designs. Sometimes you just have to see the examples put to practice to really understand the power. Why not learn it from a master of his craft?&#xA;&#xA;If you are at all interested in DynamoDB, do yourself a favor and clear your calendar to give this a watch.&#xA;&#xA;This was the Day 22 #ship30for30 #atomicEssay.&#xA;&#xA;#crossPost #dynamodb #aws&#xA;&#xA;---&#xD;&#xA;&#xD;&#xA;Thanks for reading. If you enjoyed the article subscribe via RSS feed or enter your email in the box below 👇&#xD;&#xA;&#xD;&#xA;!--emailsub--]]&gt;</description>
      <content:encoded><![CDATA[<p>If you want to learn DynamoDB, you need a video that makes you 🤯. Here&#39;s my reco for the best one on the topic.</p>



<p>There are a lot of videos and blogs about DynamoDB.</p>

<p>And I&#39;ve watched/read more than I care to admit. While most hit the basics, they tend to miss out on the advanced, real-world application. And very few give that [Keanu voice] “Woah” moment.</p>

<p>But the #1 must watch video on DynamoDB I&#39;ve found is <a href="https://youtu.be/HaEPXoXVf2k">Advanced Design Patterns for DynamoDB</a> by Rick Houlihan. <em>(Plenty of Woahs waiting in this one)</em></p>

<p>Here&#39;s a teaser of what it covers:</p>
<ol><li>Real, concrete examples of relational data modeled in DDB.</li>
<li>Partition Key and Secondary Key deep dives &amp; best practices</li>
<li>Examples of mixing different data types in a GSI (Index Overloading design pattern)</li>
<li>Access pattern analysis from one of the best in the biz.</li>
<li>An example with a dozen access patterns supported by two GSIs on a single table. 🤯 <em>One of the single best aha moments of any DDB resource around.</em></li></ol>

<p>And <strong>so</strong> much more ...</p>

<p>Honestly, this video changed my perspective and continues to influence each of my DDB designs. Sometimes you just have to see the examples put to practice to really understand the power. Why not learn it from a master of his craft?</p>

<p>If you are at all interested in DynamoDB, do yourself a favor and clear your calendar to give this a watch.</p>

<p>This was the Day 22 <a href="https://kono.sh/tag:ship30for30" class="hashtag"><span>#</span><span class="p-category">ship30for30</span></a> <a href="https://kono.sh/tag:atomicEssay" class="hashtag"><span>#</span><span class="p-category">atomicEssay</span></a>.</p>

<p><a href="https://kono.sh/tag:crossPost" class="hashtag"><span>#</span><span class="p-category">crossPost</span></a> <a href="https://kono.sh/tag:dynamodb" class="hashtag"><span>#</span><span class="p-category">dynamodb</span></a> <a href="https://kono.sh/tag:aws" class="hashtag"><span>#</span><span class="p-category">aws</span></a></p>

<hr/>

<p>Thanks for reading. If you enjoyed the article subscribe via <a href="https://kono.sh/feed/">RSS feed</a> or enter your email in the box below 👇</p>


]]></content:encoded>
      <guid>https://kono.sh/so-you-want-to-learn-dynamodb</guid>
      <pubDate>Wed, 09 Nov 2022 07:31:18 +0000</pubDate>
    </item>
    <item>
      <title>3 questions to ask when deciding between a relational DB and DynamoDB for your project</title>
      <link>https://kono.sh/3-questions-to-ask-when-deciding-between-a-relational-db-and-dynamodb-for-your?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[To DynamoDB or not to DynamoDB. That is the question. Here&#39;s 3 more questions to ask (and make a decision).&#xA;&#xA;!--more--&#xA;&#xA;Choice of persistence stores has an outsized impact on project design.&#xA;&#xA;Having architected many projects for the cloud, I&#39;ve wrestled with &#34;which persistence&#34; too many times to count. But it is a decision that needs to be made early and thoughtfully.&#xA;&#xA;Applying these 3 questions quickly narrows down the choices.&#xA;&#xA;1. Is the domain model highly normalized and relational?&#xA;&#xA;While most developers will automatically say yes, they&#39;re wrong.&#xA;&#xA;In my experience, this is very rare. These designs are usually because of a team&#39;s existing relational experience and mental models. Not actually because the domain needs it.&#xA;&#xA;But, if your domain really is highly normalized data, don&#39;t think twice. Go relational.&#xA;&#xA;2. Is it cloud native?&#xA;&#xA;If your project isn&#39;t already taking advantage of cloud native features, forcing in Dynamo might bring more pain than value. Think traditional web frameworks with built-in ORMs, apps on steady EC2 servers, and similar designs.&#xA;&#xA;On the flip side, if you&#39;re already living with fine-grained IAM permissions, async processors off SQS, or highly variable connections (like Lambdas spinning up and down), Dynamo will fit right in.&#xA;&#xA;3. How well do you know the access patterns?&#xA;&#xA;DynamoDB shines when you use access-patterns-first design.&#xA;&#xA;Always start with access patterns. If you don&#39;t know them, figure them out. If you can&#39;t, because they are truly unknowns, choose a relational DB.&#xA;&#xA;Starting with access patterns will lead to a very different design than data model first.&#xA;&#xA;And often times forcing a decision about the access patterns leads to changes in the application design. That&#39;s a good thing.&#xA;&#xA;Notice, I didn&#39;t talk about cost, scaling, or high-availability requirements. More often than not, the prior three questions bring an answer before bridging these topics. But if you&#39;re still on the fence, those are the next design decisions to make.&#xA;&#xA;Drop a comment if you&#39;ve struggled with the decision or have different criteria for picking persistence.&#xA;&#xA;This was the Day 21 #ship30for30 #atomicEssay.&#xA;&#xA;#crossPost #dynamodb #aws #serverless&#xA;&#xA;---&#xD;&#xA;&#xD;&#xA;Thanks for reading. If you enjoyed the article subscribe via RSS feed or enter your email in the box below 👇&#xD;&#xA;&#xD;&#xA;!--emailsub--]]&gt;</description>
      <content:encoded><![CDATA[<p>To DynamoDB or not to DynamoDB. That is the question. Here&#39;s 3 more questions to ask (and make a decision).</p>



<p>Choice of persistence stores has an outsized impact on project design.</p>

<p>Having architected <strong>many</strong> projects for the cloud, I&#39;ve wrestled with “which persistence” too many times to count. But it is a decision that needs to be made early and thoughtfully.</p>

<p>Applying these 3 questions quickly narrows down the choices.</p>

<h3 id="1-is-the-domain-model-highly-normalized-and-relational" id="1-is-the-domain-model-highly-normalized-and-relational">1. Is the domain model highly normalized and relational?</h3>

<p>While most developers will automatically say yes, they&#39;re wrong.</p>

<p>In my experience, this is <strong>very</strong> rare. These designs are usually because of a team&#39;s existing relational experience and mental models. Not actually because the domain needs it.</p>

<p>But, if your domain really is highly normalized data, don&#39;t think twice. Go relational.</p>

<h3 id="2-is-it-cloud-native" id="2-is-it-cloud-native">2. Is it cloud native?</h3>

<p>If your project isn&#39;t already taking advantage of cloud native features, forcing in Dynamo might bring more pain than value. Think traditional web frameworks with built-in ORMs, apps on steady EC2 servers, and similar designs.</p>

<p>On the flip side, if you&#39;re already living with fine-grained IAM permissions, async processors off SQS, or highly variable connections (like Lambdas spinning up and down), Dynamo will fit right in.</p>

<h3 id="3-how-well-do-you-know-the-access-patterns" id="3-how-well-do-you-know-the-access-patterns">3. How well do you know the access patterns?</h3>

<p>DynamoDB shines when you use access-patterns-first design.</p>

<p>Always start with access patterns. If you don&#39;t know them, figure them out. If you can&#39;t, because they are truly unknowns, choose a relational DB.</p>

<p>Starting with access patterns will lead to a very different design than data model first.</p>

<p>And often times forcing a decision about the access patterns leads to changes in the application design. That&#39;s a good thing.</p>

<p>Notice, I didn&#39;t talk about <strong>cost</strong>, <strong>scaling</strong>, or <strong>high-availability</strong> requirements. More often than not, the prior three questions bring an answer before bridging these topics. But if you&#39;re still on the fence, those are the next design decisions to make.</p>

<p>Drop a comment if you&#39;ve struggled with the decision or have different criteria for picking persistence.</p>

<p>This was the Day 21 <a href="https://kono.sh/tag:ship30for30" class="hashtag"><span>#</span><span class="p-category">ship30for30</span></a> <a href="https://kono.sh/tag:atomicEssay" class="hashtag"><span>#</span><span class="p-category">atomicEssay</span></a>.</p>

<p><a href="https://kono.sh/tag:crossPost" class="hashtag"><span>#</span><span class="p-category">crossPost</span></a> <a href="https://kono.sh/tag:dynamodb" class="hashtag"><span>#</span><span class="p-category">dynamodb</span></a> <a href="https://kono.sh/tag:aws" class="hashtag"><span>#</span><span class="p-category">aws</span></a> <a href="https://kono.sh/tag:serverless" class="hashtag"><span>#</span><span class="p-category">serverless</span></a></p>

<hr/>

<p>Thanks for reading. If you enjoyed the article subscribe via <a href="https://kono.sh/feed/">RSS feed</a> or enter your email in the box below 👇</p>


]]></content:encoded>
      <guid>https://kono.sh/3-questions-to-ask-when-deciding-between-a-relational-db-and-dynamodb-for-your</guid>
      <pubDate>Sun, 06 Nov 2022 23:04:14 +0000</pubDate>
    </item>
  </channel>
</rss>