CEG830: Distributed Computing Systems