Syllabus: Design of distributed systems