A distributed key value store like Dynamo or Cassandra written in Go.
The inspiration comes from the Amazon Dynamo paper.
https://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf
Plan:
Key value store
Cluster - no leader all servers equal
Partitioning using consistent hashing
Quorum based read / write
Storage TBD
Gossip
etc
WORK IN PROGRESS. NOT READY FOR USE.
make
./dynago -i ip_addr_to_bind_to
-i ip address to bind server to
./dynago -i ip_addr -p 8085 -h 8086 -seed ip_addr_of_seed:8081
-i ip address to bind server to -p grpc port for server to server communication -h http port for client communication (default 8080) -seed another server to connect to
./dynago -i ip_addr -p 8087 -h 8088 -seed ip_addr_of_seed:8081
curl -X POST -H "Content-type:application/json" -d '{"Key": "Name", "Value":"somevalue"}' http://ip_addr:8080/kvstore
curl http://ip_addr:8080/kvstore/Name