As part of the requirements to complete the Distributed Systems (TDA596) course at Chalmers Univerity, we (a group of two) were tasked to implement a distributed blackboard application, using a subset of the Python programming language called Repy Revised Python). The work evolved from a simple and inconsistent application to a fully working distributed application with different properties as summerized below:
*simple and inconsistent distributed application -Lab 1
*consistent and not scalable application with centralized communication achieved by a leader election algorithm - Lab 2
*eventual consistency (trade-offs between efficiency/scalability and strictness)-inconsistent for a while and synchronizing over time -Lab 3
*quorum based protocols (mutual exclusion, acquire and release locks, and deadlock situations)- Lab 4
Our implementation was tested on the Seattle platform, an open source platform for peer-to-peer networking, cloud computing, and distributed systems (https://seattle.poly.edu/html/). With Seattle, we were able to run and evaluate our implementation on different machines distributed around the world. We recorded the video screencasts of our simple distributed applications upon completion of each assignment. It was fun!!!