Computer Science & Software Engineering Students
Software Developers interested in Distributed Architectures
Engineers in Cloud Computing and Network Infrastructure
6 Weeks
12 Sessions
1.5 Hours per Session
Total: 18 Hours
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
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
Synchronous vs Asynchronous Communication
Communication Protocols: RPC, REST, gRPC
Distributed Messaging Tools: RabbitMQ, Apache Kafka
Hands-on: Implementing Message Queues in a Sample System
Synchronization Issues and Race Conditions
Consistency Models: Strong, Eventual, Causal
Synchronization Algorithms: Lamport Timestamps, Vector Clocks
Hands-on: Managing Data Consistency in Distributed Environments
Types of Failures in Distributed Systems
Designing Fault-Tolerant Systems: Replication, Redundancy
Consensus Algorithms: Paxos, Raft
Hands-on: Replication Techniques with Sample Code
Distributed File Systems: HDFS, Ceph
Distributed Databases: MongoDB, Cassandra
Understanding the CAP Theorem
Hands-on: Querying and Structuring Distributed Databases
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
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
Build a Basic Distributed System with Integrated Tools
Develop Applications using Microservices Architecture
Analyze and Optimize System Performance
Final Project Presentation and Feedback
Docker and Kubernetes – Container Management
RabbitMQ, Apache Kafka – Message Queuing
MongoDB, Cassandra – Distributed Databases
Wireshark – Network Traffic Analysis
Solid understanding of TCP/IP networking
Basic knowledge of databases and data structures
Programming experience (preferably Java or Python)
Course Completion Certificate
Full Source Code of Final Project
Deployment Documentation
Access to Simulation Labs and Tools