Skip to main content

Exercise: Introduction to Distributed Systems

Duration: 90 minutes
Group Size: 4 students per group

Objectives:​

  • Understand the core concepts of distributed systems.
  • Explore the CAP theorem, resilience, and consistency in distributed systems.
  • Discuss real-world applications and deployments of distributed systems.
  • Investigate distributed transactions and system reliability.

Part 1: Exploring the Basics (30 min)​

Each group will research and discuss the following topics:

  1. Definition and Characteristics of Distributed Systems

    • What makes a system distributed?
    • Key properties: Scalability, Fault Tolerance, Concurrency, and Latency
  2. Layering in Distributed Systems

    • Identify and describe key layers (e.g., application, transport, network)
  3. CAP Theorem

    • Explain Consistency, Availability, and Partition Tolerance.
    • Why can’t a system achieve all three simultaneously?
    • Real-world implications of CAP theorem.
  4. Resilience and System Reliability

    • How do distributed systems handle failures?
    • Strategies such as replication, failover, and load balancing.
  5. Deployments in Distributed Systems

    • Centralized vs. decentralized vs. peer-to-peer architectures.
    • Cloud-based vs. on-premise deployments.
  6. Distributed Transactions and Consistency

    • Understanding two-phase commit (2PC) and three-phase commit (3PC).
    • Eventual consistency vs. strong consistency in databases.

πŸ’‘ Task: Each group summarizes their findings on a shared digital document (Google Docs, Miro Board, etc.).


Part 2: Exploring a Real-World Use Case (30 min)​

Each group will investigate a real-world distributed system, analyzing its design and challenges. Possible examples:

  • Google Docs: How does it maintain consistency and availability?
  • Blockchain: How does it ensure decentralization and resilience?
  • Netflix Content Delivery Network (CDN): How does it handle distributed video streaming?
  • Amazon DynamoDB: How does it implement eventual consistency?

πŸ’‘ Task: Each group selects one system, researches its architecture, and identifies how it addresses CAP theorem constraints, resilience, consistency, and transactions.


Part 3: Reflection & Discussion (30 min)​

Each group presents their findings:

  1. Key Takeaways from Research – Summary of CAP theorem, resilience, deployments, and distributed transactions.
  2. Insights from the Real-World Case Study – Challenges faced and solutions implemented.
  3. Discussion Questions:
    • How do different distributed systems balance consistency and availability?
    • What trade-offs do businesses face when deploying distributed architectures?
    • How would you design a distributed system for an online banking application?

Wrap-up & Submission​

  • Each group submits their research summary and a short report on their findings from the real-world case study.
  • One or more groups present and discuss their findings.