Simple Amazon Dynamo

  • A distributed data storage system similar to Amazon’s DynamoDB.
  • Used Android Studio and multithreading to implement Java’s Socket Programming API.

The task was to implement a simplified version of Dynamo. The main goal was to provide both availability and linearizability at the same time.

There were three main pieces that needed to implemented:

  1. Partition
  2. Replication
  3. Failure Handling

Content providers were used to store all messages, but the abstraction it provides was a general key-value table. Local Content Providers at every node were created to support Membership, Request Routing, Quorum replication, Chain replication and Failure Handling.

Find the entire project here: