CMU 15640 Distributed System