CS425/ECE428: Distributed Systems