Course Summary

Distributed Systems Academy (DSA) teaches both theoretical and practical aspects of implementing distributed systems. Students are introduced to important concepts about distributed system design and use those concepts to implement distributed systems. 

Students who successfully complete DSA will understand the following concepts:

  • Principles and concepts of designing and building distributed systems.
  • Introduction to architectures for distributed computation including map-reduce, client-server, peer-to-peer, and event-driven.
  • Cloud computing and APIs.
  • Reliability, availability, and scalability of large applications.
  • Peer-to-peer distributed system architecture and principles including concepts such as 
    • Asynchronous interaction patterns
    • Gossip protocols, Paxos, and byzantine failure
    • Blockchains
    • Conflict-freer replicated data types (CRDTs)

DSA comprises 10 modules that cover important foundational material for developers and architects of distributed systems. The emphasis is on peer-to-peer, decentralized distributed systems, but other architectures are covered as well.