Building a Clustered Service in Go
summary
Builds a geo‑distributed counter in Go using HashiCorp memberlist for gossip membership and a CRDT G‑counter (per‑node increments, merge by max) serialized as JSON over memberlist’s push/pull. Live demos show independent nodes accepting local increments and converging after background syncs (roughly 5–10s in the demo). Broadcast-on-every-increment is possible but wastes bandwidth; correctness window equals time since last state transfer, and rejoining nodes merge and recover their counts.
AI-written summary · about
chapters (17)
- 0:00Intro
- 1:07Why Go
- 1:51Basic Go Features
- 4:17Clustering in Go
- 8:06Basic Counter Service
- 9:52CoDistribute
- 10:45increment
- 13:44swim
- 16:18cluster
- 19:39CRTTs
- 21:39G counters
- 24:40G counter implementation
- 26:55Pushpull sync
- 27:53Demo
- 31:46Broadcast State
- 33:47Next Steps
- 35:34Questions
related talks
50mUsing CRDTs to Build a Highly Available Decentralized Service
29mIS THERE ANYBODY OUT THERE?
43mBuild Your Own Distributed System Using Go
36mConflict-Free Replicated Datatypes (CRDT)
45mIs there anybody out there?
29mGolang and JavaScript: The Future of Cloud
04mGo Remote Control
42mLevel-Up Real-time Go Applications with Ringbuffers
