CS455: Distributed Systems