Build Your Own Distributed System Using Go
summary
Builds a replicated Go key/value service by inserting a Raft layer between the HTTP handler and storage, using HashiCorp raft v1.5 (MIT) and example backends SQLite and BoltDB; implements apply, snapshot, restore (and optional release) hooks and a leader-forwarding mechanism. Demonstrates a working hrafd prototype and RQlite approach, notes fsync makes disk the usual bottleneck, frequent snapshots shorten startup but block writes, and consensus increases write latency while reads can remain local depending on consistency.
AI-written summary · about
chapters (10)
- 0:00Intro
- 2:56Why are distributed systems difficult
- 6:55Raft
- 18:28System Architecture Diagram
- 26:01Developing and Running Systems
- 26:26Testing
- 30:56Managing Your CLCL
- 34:08Monitoring Your Raft System
- 37:02Final Considerations
- 41:50Summary
related talks
41mThe Raft Consensus Algorithm
47mDistributed Systems: When Democracy and Computer Science Come Together
50mDo Distributed Systems they said. It'll be fun
40mDeep Dive: etcd
50mUsing CRDTs to Build a Highly Available Decentralized Service
14mDistributed Consensus in 15 Minutes!
55mImplementing Raft in RabbitMQ
45mDo Distributed Systems they said. It'll be fun they said.
