October 11, 2023

DynamoDB - pros and cons

Introduction

Choosing the right database for your application is a critical decision in software development. DynamoDB, Amazon Web Services NoSQL database, is often a top consideration. In this blog post, I’ll discuss the pros and cons of using DynamoDB for your app, covering its history, roots, use cases, alternatives, advantages, and challenges. By the end, you’ll have a clear understanding of whether DynamoDB is the right choice for your project.

DynamoDB’s Foundation

Amazon’s engineers embarked on a meticulous analysis of their Oracle database, which served as the backbone for their shopping cart system. They realized that this critical database was approaching its operational limits. The intriguing revelation was that the vast majority of the queries performed on this database were essentially key-value queries. Remarkably, approximately 90% of these operations did not involve complex joins. Prior to the development of Dynamo, Amazon’s engineers had been employing a denormalization strategy to enhance response times.

The shopping cart, being a pivotal component of Amazon’s e-commerce ecosystem, provided a unique use case that permitted some flexibility in terms of data consistency. This leniency allowed engineers to prioritize other crucial aspects, most notably, availability and scalability.

This pivotal research laid the foundation for what would later be documented in the Dynamo paper. The Dynamo paper outlined key principles that would redefine the database landscape. These principles included prioritizing availability over strong consistency, implementing a key-value structure, and eliminating the need for costly joins.

Subsequently, DynamoDB, Amazon’s NoSQL offering, was developed, heavily drawing from the insights and concepts presented in the Dynamo paper. Additionally, the influence of the Dynamo paper extended beyond Amazon, notably serving as a source of inspiration for open-source databases like Cassandra, highlighting the enduring impact of these foundational ideas on the database industry as a whole.

© Alexey Smirnov 2023