No Fixed Schema in DynamoDB

Learn about a schema that allows easy scaling and flexible use cases with high performance.

Providing services to a wide range of customers that need database services will require a database design that can work for an equally wide range of use cases with easy integration via APIs. Providing services to a large number of customers requires scalability. Operating at a large scale requires a high-performance solution, especially because modern applications often have high throughput requirements. Also, to build a reliable service, high availability is crucial. Let's discuss how we can achieve these goals with our schema model.

For our design, we have chosen a NoSQL database because of its flexibility with highly functional APIs, easy scalability, performance at scale, and high availability. First, we will explain why we have chosen this system over the more traditional RDBMS (Relational Database Management System). Then, we will explore the table structure of our database.

NoSQL instead of RDBMS

Press + to interact
RDBMS needs schema to be known a priori at the writing time so it can generate indexes. Traditional RDBMS fits the pattern of WORM (write-once read-many), and indexes make reading efficient. For NoSQL, schema can wait until the read time. Hence there is more flexibility for NoSQL solutions.
RDBMS needs schema to be known a priori at the writing time so it can generate indexes. Traditional RDBMS fits the pattern of WORM (write-once read-many), and indexes make reading efficient. For NoSQL, schema can wait until the read time. Hence there is more flexibility for NoSQL solutions.

In an RDBMS, data is stored in tables that are related to one another. NoSQL (not only SQL) describes any database with no relational structure of RDBMS. Our choice of NoSQL over RDBMS is motivated by the following reasons:

  • Flexibility: The NoSQL model allows unstructured and semi-structured data, something ...