Labs for 18-842 Distributed Systems Lab 0: Infrastructure This lab is designed to get you thinking about testing harnesses for distributed systems construction. You will design a system to easily configure multiple nodes, allow them to pass messages, and allow testing operations on message delivery. Lab 1: Clocks In this lab, you will build a system to synchronize events happening at distributed nodes, using Logical and Vector clocks. Lab 2: Multicast Communication In this lab, you will demonstrate reliable, causally-ordered multicast messaging among your distributed nodes. Lab 3: Mutual Exclusion In this lab, you will implement the ability for distributed nodes to come to consensus about which node should be allowed exclusive access to some resource.