KV: the ring

One big book cut into several, with a rule that says which book each name goes into. This build writes that rule in Go, and then asks what happens to it on the day a new book arrives.
Before you start. Splitting the ledger (sharding) cut one book into several because one book, on one machine, could not keep up: every name had to live in exactly one of them, and a rule that anyone could work out on their own said which. Partitioning priced the part this lesson is about, which is what has to move when a machine joins. That is all you need: many machines, each holding a slice of the data, and a rule that picks the slice. This is the first of four builds; by the last one you will have a small key-value store (a program that stores a value under a name, like a coat check) spread across five machines, and you will kill two of them and watch it survive.
