Back to selection
| Semester | spring semester 2026 |
| Course frequency | Irregular |
| Lecturers | Erick Lavoie (erick.lavoie@unibas.ch, Assessor) |
| Content | This seminar will provide foundational concepts and skills for designing and implementing distributed applications that are strongly eventually consistent, i.e. that allow replicas to update their state independently while guaranteeing that once all replicas have received the same set of of updates they are in the same state. This property enables applications to continue working when offline, while allowing automatic conflict resolution when connectivity is resumed. This is especially useful for designing peer-to-peer and edge applications but the same concepts are also used to scale cloud-based applications and provide geo-replication of data centres. The seminar will blend both theory and practice, with an emphasis on understanding the key concepts and how to apply them to enable participants to create their own applications. |
| Learning objectives | Participants of this seminar will: 1) Learn the key concepts required for the design of strongly eventually-consistent distributed applications; 2) Learn a mathematical model to describe the behaviour of concurrent programs; 3) Learn the TLA+ language and how to use the model-checker in the associated toolbox, to identify bugs and corner cases in their designs and published algorithms; 4) Apply the learnings to the design and implementation of an offline-first peer-to-peer application, using their favorite programming language (ex: Rust, Python, Java, etc) and replication protocol/middleware (ex: tinySSB, git, ATProto, custom framework, etc.). |
| Bibliography | Chapters 1,2,3 from "Introduction to Reliable and Secure Distributed Programming" (http://dx.doi.org/10.1007/978-3-642-15260-3), available freely on the Springer Link website when connected with your Unibas credentials. Chapters 1-4 of "A Science of Concurrent Programs", available freely online (https://lamport.azurewebsites.net/tla/science.pdf), and the TLA+ Video Course taught by Leslie Lamport (https://lamport.azurewebsites.net/video/videos.html). A selection of papers on Conflict-Free Replicated Data Types and Byzantine Tolerant P2P systems taken from (https://crdt.tech/), related conferences, and Arxiv, ex: - "Byzantine Eventual Consistency and the Fundamental Limits of Peer-to-Peer Databases" (https://doi.org/10.48550/arXiv.2012.00472) - "The Blocklace: A Byzantine-repelling and Universal Conflict-free Replicated Data Type (https://arxiv.org/abs/2402.08068) Completed Master and Bachelor Projects and Theses in the Computer Network Groups (see pdfs available on https://cn.dmi.unibas.ch/en/projects/). |
| Comments | Presentations and implementations will be done in teams of 2 students. A maximum of 20 students may register for the seminar, first-come first-served. |
| Admission requirements | Completed either, and preferably both, of the "Foundations of Distributed Systems" or "Advanced Computer Networking" courses. |
| Course application | Access for synchronized courses on ADAM only by course registration in online services. |
| Language of instruction | English |
| Use of digital media | No specific media used |
| Course auditors welcome |
| Interval | Weekday | Time | Room |
|---|---|---|---|
| wöchentlich | Monday | 10.15-12.00 | Spiegelgasse 5, Seminarraum 05.001 |
| Date | Time | Room |
|---|---|---|
| Monday 16.02.2026 | 10.15-12.00 | Spiegelgasse 5, Seminarraum 05.001 |
| Monday 23.02.2026 | 10.15-12.00 | Fasnachtsferien |
| Monday 02.03.2026 | 10.15-12.00 | Spiegelgasse 5, Seminarraum 05.001 |
| Monday 09.03.2026 | 10.15-12.00 | Spiegelgasse 5, Seminarraum 05.001 |
| Monday 16.03.2026 | 10.15-12.00 | Spiegelgasse 5, Seminarraum 05.001 |
| Monday 23.03.2026 | 10.15-12.00 | Spiegelgasse 5, Seminarraum 05.001 |
| Monday 30.03.2026 | 10.15-12.00 | Spiegelgasse 5, Seminarraum 05.001 |
| Monday 06.04.2026 | 10.15-12.00 | Ostern |
| Monday 13.04.2026 | 10.15-12.00 | Spiegelgasse 5, Seminarraum 05.001 |
| Monday 20.04.2026 | 10.15-12.00 | Spiegelgasse 5, Seminarraum 05.001 |
| Monday 27.04.2026 | 10.15-12.00 | Spiegelgasse 5, Seminarraum 05.001 |
| Monday 04.05.2026 | 10.15-12.00 | Spiegelgasse 5, Seminarraum 05.001 |
| Monday 11.05.2026 | 10.15-12.00 | Spiegelgasse 5, Seminarraum 05.001 |
| Monday 18.05.2026 | 10.15-12.00 | Spiegelgasse 5, Seminarraum 05.001 |
| Monday 25.05.2026 | 10.15-12.00 | Pfingstmontag |
| Modules |
Doctorate Computer Science: Recommendations (PhD subject: Computer Science) Module: Applications of Distributed Systems (Master's Studies: Computer Science) Module: Applications of Machine Intelligence (Master's Studies: Computer Science) Module: Methods of Distributed Systems (Master's Studies: Computer Science) |
| Assessment format | continuous assessment |
| Assessment details | Each team of students will: 1. Prepare and present 3 times: 1.1 On a topic taken from Chapter 3-4 of "A Science of Concurrent Programs" and/or TLA+ Video Course. 1.2 On a paper among those suggested. 1.3 On their TLA+ model and results of model checking of a published distributed algorithm, either from Chapter 3, 4 or 5 of "Intro to Reliable and Secure Distributed Programming" or one of the papers presented previously. 2. Design and implement an application of their choice 2.1 Provide a report with the TLA+ model of their core algorithms. 2.2 Provide the source code of their application with README to make test deployments. Each presentation will be worth 25% of the final grade, and the final report 25%. |
| Assessment registration/deregistration | Reg.: course registration, dereg: cancel course registration |
| Repeat examination | no repeat examination |
| Scale | 1-6 0,5 |
| Repeated registration | as often as necessary |
| Responsible faculty | Faculty of Science, studiendekanat-philnat@unibas.ch |
| Offered by | Fachbereich Informatik |