# 6.5840: Distributed Systems

---

Announcements:
Jan 25: Please use Piazza to read announcements and ask and answer questions about labs, lectures, and papers.

What is 6.5840 about?
6.5840 is a core 12-unit graduate subject with lectures, readings, programming labs, an optional project, a mid-term exam, and a final exam. It will present abstractions and implementation techniques for engineering distributed systems. Major topics include fault tolerance, replication, and consistency. Much of the class consists of studying and discussing case studies of distributed systems.

Prerequisites: 6.1910 (6.004) and one of 6.1800 (6.033) or 6.1810, or equivalent. Substantial programming experience will be helpful for the lab assignments.

---

[1. Information](./docs/6.5840%3A%20Distributed%20System/1.%20Information.md)

[2. Lab Guidance](./docs/6.5840%3A%20Distributed%20System/2.%20Lab%20Guidance.md)

[3. Lab 1: MapReduce](./docs/6.5840%3A%20Distributed%20System/3.%20Lab%201%3A%20MapReduce.md)

[4. Lab 2: Key-Value Server](./docs/6.5840%3A%20Distributed%20System/4.%20Lab%202%3A%20Key-Value%20Server.md)

[5. Lab 3: Raft](./docs/6.5840%3A%20Distributed%20System/5.%20Lab%203%3A%20Raft.md)

[6. Lab 4: Fault-tolerant Key-Value Service](./docs/6.5840%3A%20Distributed%20System/6.%20Lab%204%3A%20Fault-tolerant%20Key-Value%20Service.md)

[7. Lab 5: Sharded Key-Value Service](./docs/6.5840%3A%20Distributed%20System/7.%20Lab%205%3A%20Sharded%20Key-Value%20Service.md)

---
*From: [6.5840: Distributed Systems](https://pdos.csail.mit.edu/6.824/index.html)*