If you do not finish during the lecture period, please finish it as homework.
Read the Raft Paper:
- Section 1
- Section 2
- Section 4
- Section 5 (until including 5.3)
Be creative and write your own Raft Implementation!
Examples:
- Testable key value store using interfaces and goroutines:
https://github.com/0xqab/concepts-of-programming-languages/tree/master/dp/kvstore/core/raft - Networkable implementation using gRPC (voting only):
https://github.com/0xqab/concepts-of-programming-languages/tree/master/dp/raft - Highly abstracted from the paper:
https://github.com/hashicorp/raft - More implementations:
github.com/search?q=go-raft