Distributed Key-Value Store

0 This project consists of a sharded, distributed, causally-consitent key-value store. It is written in Go and designed to be run using docker. The store accepts read, write, and various other requests through the use of REST API endpoints. Causal consistency is maintained through the use of a causality context which is sent with every message. It is implemented using a vector clock which represents a snapshot of the system at some point in time. Eventual consistency is also mainted through the use of "gossip" between nodes. Sharding is implemented using hashing and the system allows for the adding and removing of nodes at anytime while preserving all data in the store. Since this code is from a university course I cannot make the code publicly available, but I can share it upon request to those interested.