-
Notifications
You must be signed in to change notification settings - Fork 12
Open
Description
Link to the codebase
https://github.com/hashicorp/memberlist/
Which release/version did you read?
Commit hashicorp/memberlist@bfc6c88. The project doesn't do releases too often.
Why it is a good project to read?
- Membership in distributed systems. Re-useable in other projects.
- memberlist is a building block for Serf, which is a building block for Consul.
Starting point
memberlist.go (https://github.com/hashicorp/memberlist/blob/bfc6c8886aaf7d2f180da4717014f54f73e307a6/memberlist.go)
Reading order
No specific order.
Interesting parts
- The Delegate interface that can be used as hooks in the gossip layer.
- Payload handling, including encrypted messages
Any parts should be skipped?
No.
Any other tips?
- Read the tests. It helps to understand how interfaces are used. It also has end-to-end tests.
Links and resources
- Api doc https://godoc.org/github.com/hashicorp/memberlist
- Serf homepage https://www.serf.io/
Contributor
lun-4