Architecture
DynamoDB's architecture consists of various well-known, and a few new, techniques that have helped engineers build such a great system. To build a robust system like this, one has to consider various things, such as load balancing, partitioning, failure detection/prevention/recovery, replica management and their sync, and so on. In this section, we are going to focus on all these things, and learn about them in detail.
Load balancing
DynamoDB, being a distributed system, needs its data to be balanced across various nodes. It uses consistent hashing for distributing data across the nodes. Consistent hashing dynamically partitions the data over the network and keeps the system balanced.
Consistent hashing is a classic solution to a very complex problem. The secret is finding a node in a distributed cluster to store and retrieve a value identified by a key, while at the same time being able to handle the node failures. You would say this is quite easy, as you can simply number...