Implementing a simplified version of Dynamo.There are three main functionalities: 1) Partitioning, 2) Replication, and 3) Failure handling.The main goal is to provide both availability and linearizability at the same time.