MIT Distributed Computing Course, Initial Thoughts
A professor at MIT released his entire distributed computing curriculum for free. Time to learn.
5 clear projects to build (the best way of learning things).
Even more fortunately, it uses the language I’m learning: go!
Here’s an outline of the 5 labs:
-
A recreation of MapReduce
-
A simple key/value server that uses a log to ensure operations are performed once despite network failures, and ensures that operations have a linear order.
-
A distributed logging tool called Raft that allows nodes to define a global order of operations, which distriubted key/value nodes can reference to ensure they all have the same data.
-
A fault tolerant key/value service built on top of the earlier Raft service.
-
A sharded variant of the key/value service, where only a subset of nodes get each data point, instead of every node getting every data point.
All of these will not only teach distributed computing, but how to use go’s routines to their full potential. And, of course, it is incredible mental exercise.