Out of interest in distributed system, I started to implement the lab of distributed computer system engineering 6.824 of MIT OpenCourseWare, which aimes to use golang to implement Google mapreducde framework and raft consensus algorithm.
● Golang programming language, core library
● goroutine and channel for lightweight concurrency, rpc for accessing remote methods
● Reference to Google MapReduce paper
● Reference to consensus algorithm Raft extended version, comparison between Paxos and Raft
● A final distributed file system product