GitHunt
PA

pawan-87/MyMembers

SWIM protocol implementation

MyMembers

An implementation of the SWIM protocol in Go.

Note: This is a learning project and is not designed for production use.

Node Architecture

Screenshot 2026-02-27 at 11 25 40 PM

Example

// Create node 1
node1Config := DefaultConfig()
node1Config.Name = "node1"
node1Config.BindAddr = "127.0.0.1"
node1Config.BindPort = 6969

node1, _ := Create(node1Config)

// Create node 2
node2Config := DefaultConfig()
node2Config.Name = "node2"
node2Config.BindAddr = "127.0.0.1"
node2Config.BindPort = 6970

node2, _ := Create(node2Config)

// Node 2 joins node 1
node2.Join([]string{"127.0.0.1:6969"})

// Check members
fmt.Println(len(node1.Members())) // 2
fmt.Println(len(node2.Members())) // 2

// Graceful leave
node2.Leave()
node2.Shutdown()

Learning Resources

Contact

Pawan Mehta — arowpk@gmail.com

Languages

Go100.0%

Contributors

MIT License
Created February 26, 2026
Updated March 1, 2026