Based on a the book Distributed Services with Go, this repo implements a server and a client for a self-contained, persistent event-stream service. This project uses a simple Log as the storage, grpc as the communication layer, serf to discover servers in the cluster and raft for consensus and replication.
This project uses TLS for security, so you'll need to create your own certificates. I'm using cfssl
to generate them locally:
$ go get github.com/cloudflare/cfssl/cmd/cfssl
$ go get github.com/cloudflare/cfssl/cmd/cfssljson
$ go install google.golang.org/protobuf/cmd/protoc-gen-go
$ go get google.golang.org/grpc/cmd/protoc-gen-go-grpc
Then you can create your own certificates using the Makefile command:
$ make gencert
$ make test