implemented by purely unbuffered channel
TODO List:
- Lab 1: MapReduce
- Lab 2: Raft
- Part 2A
- Part 2B
- Part 2C
- Part 2D
- Lab 3: Fault-tolerant Key/Value Service
- Part 3A
- Part 3B
- Lab 4: Sharded Key/Value Service
- Part 4A
- Part 4B (pass 5000 times)
- Challenge1 (pass 5000 times)
- Challenge2 (pass 5000 times)