Lectures Publications Theses Events

FS26 - Distributed Systems (DSy)

This lecture series focuses on distributed systems, which are computer systems made up of multiple autonomous components, or nodes, that are linked and communicate with one another to achieve a common goal.

By the end of the series, you should have a good understanding of the various components and technologies involved in distributed systems and blockchain, as well as their implementation and deployment considerations.

Lecture Topics

The following topics are preliminary and may change or be shifted during the semester.

NrDateTopics for this Week
0116.02.2026Admin, Introduction / Motivation - Scaling
0223.02.2026Introduction / Motivation, Location and Redundancy
0302.03.2026Containers and VMs, Docker
0409.03.2026Monorepos / Polyrepos, Debugging Containers
0516.03.2026Load Balancing
0623.03.2026Web Architectures
0730.03.2026Categorization
---
0813.04.2026Authentication
0920.04.2026Protocols
1027.04.2026Application Protocols
1104.05.2026Exam preparation
1211.05.2026Deployment, Performance, Blockchain, Bitcoin
1318.05.2026Challenge Task Presentations
---
1401.06.2026Challenge Task Award Winner Announcement, Q&A

Online Lectures & Offline Exercises

The Distributed Systems (DSy) lectures will be pre-recorded and uploaded by Friday evening. The length of the videos will be ~ 80 - 100 minutes divided into segments. The news segment (~10 min) will cover news around the topics distributed systems and blockchain and are not part of the exam. It should serve as an overview of current topics in this field. On Mondays, only exercises take place.

I will be in room FZ.0332 from 08:10 - 09:50 in St.Gallen and in room 1.257 from 13:10 - 18:40 in Rapperswil on Mondays. During exercises, you can work on your challenge task. You do not need to be present on Monday, but it is highly recommended to discuss your ideas, issues, and problems with the challenge task. On request, you can also join the exercises remotely via MS Teams.

The online lectures and PDFs can be accessed from outside the OST network (also on Youtube), the exercise and admin material only with VPN.

Lecture

Lecture 1

Admin (VPN) News
Introduction - Scaling

The admin part gives an overview over this lecture and presents the challenge task for this course (Slides: FS26-DSy-01-admin.pdf). The second video (news) reports on distributed systems and blockchain news. The first article describes a startup rebuilding its workflow around AI coding agents, a shift I experienced myself. The next article provides a mathematical framework for compression in databases, backing up my lecture point about optimizing for bandwidth. The third topic covers Discord's architecture using the Actor Model to handle trillions of messages at scale. The final article presents Backblaze's 2025 drive stats with a 1.36% failure rate across 340'000 drives, reminding us why we need redundancy and distributed systems. (Slides: FS26-DSy-01-news.pdf). The third video shows the first part of the motivation why distributed systems are necessary (Slides: FS26-DSy-01-intro-scaling.pdf). [100min]

Lecture 2

Admin (VPN) News
Introduction - Location/Latency Introduction - Redundancy

The admin part is about the lecture content and the challenge task repository invitations (Slides: FS26-DSy-02-admin.pdf). The second video (news) reports on distributed systems and blockchain news. The first article covers an incident where GPT 5.3 Codex wiped an entire drive due to a PowerShell escaping bug, reminding us that AI coding agents must be sandboxed and paired with version control. The next article describes building a startup entirely on European infrastructure for data sovereignty, feasible but slower, with thinner ecosystems and some unavoidable US dependencies, illustrating how sovereignty requirements requires distributed architectures. The final article introduces WebMCP, a browser-native API letting websites expose structured tools to AI agents directly, potentially replacing complex scraping pipelines with simple tool invocations (Slides: FS26-DSy-02-news.pdf). The third video covers the second part of the motivation for distributed systems: location (Slides: FS26-DSy-02-intro-location.pdf). The fourth video addresses fault tolerance and redundancy (Slides: FS26-DSy-02-intro-hw.pdf). [93min]

Lecture 3

Admin (VPN) News
tbd
Containers and VMs Docker

The admin part is about the lecture content and the challenge task (Slides: FS26-DSy-03-admin.pdf). The second video (news) reports on ... The third video covers the introduction of containers and VMs (Slides: FS26-DSy-03-container.pdf). The fourth video dives into docker (Slides: FS26-DSy-03-docker.pdf) [XYmin]

Challenge Task FS 2026

Starting this semester, the challenge task (CT) is individual work. With the availability of generative AI tools, a single student can now design, build, and implement what previously required a group of 2-3. This also means every student must understand the full stack.

This semester's challenge task is the design and implementation of a distributed system (of your choice) from scratch where a service instance can fail. The system needs to have the following components:

  1. Simple Frontend (e.g., HTML, Vue, React, Svelte)
  2. Load balancer (e.g., Traefik, Nginx, HAProxy, Caddy)
  3. Two instances of a service (your choice), and during the challenge task presentation, one instance will be shut off
  4. JWT-based authentication (login/registration required to use the application, API endpoints protected with JWT)
  5. Database (persistent storage, does not need to be scalable)

Requirements

All requirements below must be met in order to pass this lecture.

  1. Load balancing with multiple instances with failover of a service instance
  2. Containerized (e.g., with docker)
  3. Simple frontend
  4. JWT-based authentication
  5. Persistent storage
  6. Use latest stable releases of chosen libraries and frameworks
  7. A fresh clone of the repository + a single command (e.g., docker compose up) must bring up the entire working system (or using Kubernetes), including database seeding/migration if needed. No manual setup steps allowed.
  8. Perform a load test against a JWT-protected endpoint of your system (e.g., using ab, wrk, hey, or k6) and document the results. During the presentation, show how your system behaves under load, what the bottleneck could be, and how many requests/second it can handle.

Milestones

If all requirements are fulfilled, you are encouraged to hand in before the respective deadlines.

Individual Work

There are no groups this semester. Each student works individually on their challenge task. During exercise hours, you can work on your task and discuss ideas, issues, and problems with the supervisor. You do not have to be present at the exercises, but it is highly recommended. You shall utilize homework time to work on the challenge task besides the exercise time slots. Your submitted source code and presentation will be only accessible via VPN.

For a reference of previous work, go to FS25.

NrNameProjectMilestone 1
01Tobias M.Watchlist
02Yves F.Lernkarte (tbd)
03Marco S.Dart Helper
04Bjoern S.Priority Manager
05Dominik B.URL Shortener
06Assvin S.Todo
07Kevin S.FranzFinance
08Aron B.Logging Dashboard
09Lars T.Drello Light
10Fabian L.Reservationstool
11Michael S.Ideenfriedhof
12Silas K.Game of Life
13Till S.AV Light
14Rafael D.TCGManager
15Joris H.Cahoot Light
16Jerome K.Kalaha
17Jonas N.Fractal Generator
18Tiago D.Rate Limiter (Convert App)
19Ethan B.Distributed Chess
20Gaëtan A.2Password
21Linus G.MyTrip
22Katharina T.ExpenseTracker
23Claude B.Doctopus
24Olha S.Hand System Management
25Finn S.PixelCanvas
26Stefanie J.MathGame
27Mario B.PetRock
28Luca S.ThreatWatch
29Ramon S.VotingSystem
30Colin V.Crawler
31Marco C.tapper
32Aurel K.Multiplayer Quiz
33Pietro L.
34Mikail Y.FamilyTreeManager
35Yanick E.holiday expense tracker
36Andrej E.Interactive Classroom
37Lukas Z.CalledIT
38Luca G.FitnessTracker
39Leon R.TV Watchlist
40Fabio F.LDNS
41Severin N.QuizTune
42Nico R.MeTube
43Loris P.0Chat
44Leo V.distributed_stock_provider
45Jovin R.Dashboard / Metrics
46Jasmin F.SocialMedia pOST
47Cedric C.Habit Tracker
48Mirco D.TCG Deck Builder
49Lenny M.forum2000
50Jonas G.SiteLog
51Marc F.CoffeeCluster
52Jeriel F.URL & Bookmark Manager
53Manuel B.Distributed Notes App
54Raphael L.MoneyPilot
55Diego S.AnkiGenerator
56Josias B.Aurora Engine