
About Course
🌐 Distributed Systems
Course Code: 27016-COs-CS
Academy: Engineering Office for Technology and Software Services
🎯 Target Audience
-
Computer Science & Software Engineering Students
-
Software Developers interested in Distributed Architectures
-
Engineers in Cloud Computing and Network Infrastructure
🕒 Course Duration
-
6 Weeks
-
12 Sessions
-
1.5 Hours per Session
-
Total: 18 Hours
✅ Course Objectives
-
Understand the core concepts of distributed systems
-
Explore synchronization, fault tolerance, and consistency
-
Gain practical experience with tools like Docker, Kafka, MongoDB
-
Learn how to design, secure, and deploy scalable distributed applications
📚 Course Modules
🔹 Module 1: Introduction to Distributed Systems
-
What are Distributed Systems and Why They Matter
-
Advantages and Challenges of Distributed Systems
-
Real-World Examples: Google Cloud, Netflix, Blockchain
-
Centralized vs Distributed Architectures
🔹 Module 2: Communication Models
-
Synchronous vs Asynchronous Communication
-
Communication Protocols: RPC, REST, gRPC
-
Distributed Messaging Tools: RabbitMQ, Apache Kafka
-
Hands-on: Implementing Message Queues in a Sample System
🔹 Module 3: Synchronization & Consistency
-
Synchronization Issues and Race Conditions
-
Consistency Models: Strong, Eventual, Causal
-
Synchronization Algorithms: Lamport Timestamps, Vector Clocks
-
Hands-on: Managing Data Consistency in Distributed Environments
🔹 Module 4: Fault Tolerance
-
Types of Failures in Distributed Systems
-
Designing Fault-Tolerant Systems: Replication, Redundancy
-
Consensus Algorithms: Paxos, Raft
-
Hands-on: Replication Techniques with Sample Code
🔹 Module 5: Distributed Storage & Databases
-
Distributed File Systems: HDFS, Ceph
-
Distributed Databases: MongoDB, Cassandra
-
Understanding the CAP Theorem
-
Hands-on: Querying and Structuring Distributed Databases
🔹 Module 6: Distributed & Cloud Computing
-
Cloud Computing as a Subset of Distributed Systems
-
Introduction to Containers: Docker, Kubernetes
-
Building and Deploying Cloud-Native Apps
-
Hands-on: Deploying a Distributed System on Kubernetes
🔹 Module 7: Security in Distributed Systems
-
Security Challenges in Distributed Environments
-
Data Encryption and Authentication/Authorization
-
Security Protocols: OAuth, SSL/TLS
-
Hands-on: Securing APIs and Microservices in a Distributed Setup
🔹 Module 8: Final Projects & Real-World Applications
-
Build a Basic Distributed System with Integrated Tools
-
Develop Applications using Microservices Architecture
-
Analyze and Optimize System Performance
-
Final Project Presentation and Feedback
🛠 Tools & Platforms Used
-
Docker and Kubernetes – Container Management
-
RabbitMQ, Apache Kafka – Message Queuing
-
MongoDB, Cassandra – Distributed Databases
-
Wireshark – Network Traffic Analysis
📌 Prerequisites
-
Solid understanding of TCP/IP networking
-
Basic knowledge of databases and data structures
-
Programming experience (preferably Java or Python)
🏅 Deliverables
-
Course Completion Certificate
-
Full Source Code of Final Project
-
Deployment Documentation
-
Access to Simulation Labs and Tools