PixelRing

View code
Distributed systems · C#

Every pixel is a key in a five-node store modeled on Amazon's Dynamo and written from scratch in C#: a hash ring, three copies of each key, and writes that need two replies.

Live run · canvas painted through the API; node-b killed and revived; a partition leaves two versions of the same pixels

Built withC# · .NET 10 · ASP.NET Core · React · TypeScript · Canvas

  • Kill a node or cut the network and writes keep landing. Hinted handoff, read repair and Merkle-tree anti-entropy bring the missing copies back once it returns.
  • Merkle trees are kept per key range, not per node, because two replicas only share some ranges. 59 tests cover a node killed mid-write, partitions, crash recovery and anti-entropy.