Taro Logo

[Distributed Systems Deep Dive] Design a KV such as Dynamo DB

This is a session on DynamoDB if you're looking to understand how to design a distributed key-value stores. We'll start with what DynamoDB is and why people are using it. Expect a run-through of its architecture and a straightforward explanation of how data gets sliced for efficiency. We'll also cover what happens when things go south and how DynamoDB keeps data consistent and up-to-date as well as the pros and cons.

If you write code and care about making it scale, this will be worth your time.

Dynamo Basics: Understand what DynamoDB is built for and when to use it over other databases.

  1. Architecture: Get to grips with DynamoDB's architecture - how it's built to scale effortlessly and provide consistent performance.

  2. Data Handling: Learn about partitioning strategies that spread data across nodes effectively and replication techniques that prevent data loss.

  3. Resolving Conflicts: Master vector clocks for resolving data conflicts in a system designed for eventual consistency.

  4. Operational Workflow: Gain insight into the lifecycle of 'put' and 'get' operations and how DynamoDB handles data under the hood.

  5. Merkle Trees: Understand how DynamoDB uses Merkle trees to synchronize data across distributed systems efficiently.

  6. Gossip Protocol: Learn the workings of the gossip protocol for node communication and how it contributes to DynamoDB's robustness.

Thanks to Alex Poon for leading this session!