P2P model of clustering for Go.
This project aims to be minimal, performance and code size wise.
The package uses gob for encoding messages, before using the library register all of the message types to gob.
More on that gob docs Register method
Go has a great concurrency model that makes the language be frequently used for RPC.
The purpose of this project is to provide a simple and efficient solution to cluster Go microservices easily.
Peer to peer connectivity, using a custom protocol over TCP. TCP was chosen because of it's reliability.
The model itself isn't a master-slave model, this lets the every node to be independent on each other. Each node can introduce new nodes to all of the other nodes. Each node is identified with a custom ID, so nodes can communicate with each other as well.
- Resilent - Every node is independent of other nodes so when a node crashes the cluster is still stable.
- Fast - The package uses the gob encoding which is very fast and efficient
- Customizable - The Message interface is supposed to be customizable, send any type of message you'd like over the cluster.