Implemented a distributed key value cache from scratch using Raft consensus algorithm. Communication is done using TCP protocol.