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:
-
Definition and Characteristics of Distributed Systems
- What makes a system distributed?
- Key properties: Scalability, Fault Tolerance, Concurrency, and Latency
-
Layering in Distributed Systems
- Identify and describe key layers (e.g., application, transport, network)
-
CAP Theorem
- Explain Consistency, Availability, and Partition Tolerance.
- Why can’t a system achieve all three simultaneously?
- Real-world implications of CAP theorem.
-
Resilience and System Reliability
- How do distributed systems handle failures?
- Strategies such as replication, failover, and load balancing.
-
Deployments in Distributed Systems
- Centralized vs. decentralized vs. peer-to-peer architectures.
- Cloud-based vs. on-premise deployments.
-
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:
- Key Takeaways from Research – Summary of CAP theorem, resilience, deployments, and distributed transactions.
- Insights from the Real-World Case Study – Challenges faced and solutions implemented.
- 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.