Distributed Systems

Course Description

Definition and characteristics of distributed systems. Distributed system architectures, centralized and decentralized, system design tradeoffs. Processes and communication: client/server, distributed objects, message-oriented, publish-subscribe. Programming middleware for distributed systems. Microservices. Distributed system modelling: synchronous and asynchronous models. Synchronization in distributed environments. Consensus and coordination without and with failures. Group communication. Distributed transactions. Data replication and consistency. Cloud computing and services (IaaS, PaaS, SaaS). Overlay networks: peer-to-peer systems, Blockchain and Distributed Ledger Technology.

Learning Outcomes

  1. identify distributed system characteristics
  2. explain the models for distributed processing and communication
  3. design and develop a complex distributed system
  4. analyze distributed algorithms
  5. evaluate the characteristics of a particular distributed system
  6. compare centralized and decentralized distributed solution

Forms of Teaching


The classes are organized in two blocks: The first block comprises 7 classes and a midterm exam, while the second comprises 6 classes and a final exam. this makes in total 15 weeks with 3 hours per week.

Independent assignments

Students need to resolve independently practical tasks as preparation for laboratory exercises.


Laboratory exercises are aimed at solving practical programing tasks using modern technologies and tools (Spring, Docker, GRPC, Kafka). Focus on decentralized solutions.

Grading Method

Continuous Assessment Exam
Type Threshold Percent of Grade Threshold Percent of Grade
Laboratory Exercises 25 % 30 % 25 % 30 %
Class participation 0 % 5 % 0 % 5 %
Mid Term Exam: Written 0 % 25 % 0 %
Final Exam: Written 0 % 30 %
Final Exam: Oral 10 %
Exam: Written 0 % 55 %
Exam: Oral 10 %

Week by Week Schedule

  1. Distributed system architectures. Centralized and decentralized solutions.
  2. Processes and communication in distributed systems. Client-server model: Socket API, RPC, RMI.
  3. Programming middleware for distributed systems: message-oriented communication, publish/subscribe.
  4. Web-application archiectures and web-technologies, REST, WebSocket.
  5. Microservices and design of distributed systems.
  6. Formal models of distributed systems (synchronous and asynchronous), selected algorithms as examples.
  7. Process synchronisation: physical and logical time
  8. Midterm exam
  9. Data replication and consistency.
  10. Data replication and consistency.
  11. Fault tolerance in distributed systems.
  12. Cloud computing. Docker, Kubernetes.
  13. Peer-to-peer (P2P) systems.
  14. Blockchain i Distributed Ledger Technology (DLT).
  15. Final exam

Study Programmes

University graduate
Audio Technologies and Electroacoustics (profile)
Free Elective Courses (1. semester)
Communication and Space Technologies (profile)
Free Elective Courses (1. semester)
Computational Modelling in Engineering (profile)
Free Elective Courses (1. semester)
Computer Engineering (profile)
Elective Course of the Profile (1. semester)
Computer Science (profile)
Specialization Course (1. semester) (3. semester)
Control Systems and Robotics (profile)
Free Elective Courses (1. semester)
Data Science (profile)
Free Elective Courses (1. semester)
Electrical Power Engineering (profile)
Free Elective Courses (1. semester)
Electric Machines, Drives and Automation (profile)
Free Elective Courses (1. semester)
Electronic and Computer Engineering (profile)
Free Elective Courses (1. semester)
Electronics (profile)
Free Elective Courses (1. semester)
Information and Communication Engineering (profile)
Free Elective Courses (1. semester)
Network Science (profile)
(1. semester)
Software Engineering and Information Systems (profile)
Elective Course of the Profile (1. semester) Theoretical Course (1. semester)
Telecommunication and Informatics (profile)
Theoretical Course (1. semester)


Maarten van Steen, Andrew S. Tanenbaum (2017.), Distributed Systems, Createspace Independent Publishing Platform
George F. Coulouris, Jean Dollimore, Tim Kindberg, Gordon Blair (2011.), Distributed Systems, Addison-Wesley Longman
Ajay D. Kshemkalyani, Mukesh Singhal (2011.), Distributed Computing, Cambridge University Press

Laboratory exercises

For students


ID 222664
  Winter semester
L1 English Level
L1 e-Learning
45 Lectures
12 Laboratory exercises

Grading System

85 Excellent
75 Very Good
65 Good
55 Acceptable