This was a part of my Master degree project. The thesis which accompanies this can be found here.
This is an implementation in Java of the data replication scheme from the distributed database Megastore by Google white paper which uses the Paxos algorithm.
After this I designed several optimizations to it which involved using multithreading in a distributed system. I used automatic testing and kept logs for finding errors.