Seminar 8: Checkpoint #2 - Evaluation and Algorithm Understanding
Goal: Reflect on your achievements, evaluate the effectiveness of your algorithms, and engage in discussions to deepen your understanding.
Introduction
In Session 8, we reach a pivotal milestone with Checkpoint #2, a concise 10-15 minute evaluation per group. This checkpoint serves as an opportunity for you to showcase the progress of your distributed system project through a demonstration and discussion.
The evaluation process will involve a demonstration where you will showcase the functionality of your system. While the demo can be simple, it should effectively highlight that your implementation is generating the expected behavior. Additionally, you should leverage the logs you've implemented to provide insights into the inner workings of your distributed system. This practical demonstration is designed to assess your understanding of the concepts covered and the successful execution of key functionalities.
During the evaluation, there is no need to scrutinize your code. Instead, we will focus on your design decisions. Represent your choices in small diagrams, illustrating the components and their interactions. Use the diagrams as a visual aid to explain the rationale behind your design decisions. This not only demonstrates your comprehension of distributed system principles but also allows you to articulate the reasoning behind your implementation choices.
Remember, the purpose of Checkpoint #2 is to gauge your progress, offer constructive feedback, and ensure you're on the right track for the remainder of the project. Embrace this opportunity to showcase your achievements and engage in a dialogue about your distributed system design.
Task
As we approach Checkpoint #2, it's crucial to finalize your distributed system implementation, document key aspects, ensure smooth deployment, add system logs, and provide clarity through version tagging and comprehensive diagrams. These are the concrete tasks for this week:
- Finish the implementation: Complete the remaining tasks in your distributed system project, ensuring all functionalities align with the concepts covered in the sessions.
- Document Relevant Code: Provide concise and informative documentation for crucial sections of your code, aiding in understanding and evaluation.
- Docker Setup: Verify that your services can be spun up seamlessly using Docker and Docker Compose. Confirm they connect with the provided frontend to showcase the desired functionality.
- Add System Logs: Implement relevant system logs within your application to offer insights into the functioning and interactions of different components.
- Commit Changes to Repository: Commit the latest changes to your project repository, keeping it up-to-date and facilitating a smooth evaluation process.
- Create "checkpoint-2" Tag: Add a version tag "checkpoint-2" to mark this stage of your project in the repository, allowing for easy reference and tracking.
- Diagrams: Create visual documentation for your project by developing concise and informative diagrams.
- Vector clocks diagram: represent a successful order of events in a diagram, with the correct and expected values of the vector clocks of the different processes in each event. Label your processes/services, your events, and the vector clock values in each step. See the lecture slides for examples of possible drawings.
- Leader election diagram: based on the algorithm of your choice and your system setup, illustrate a possible execution in a sequence of pictures (2, 3 pictures in a sequence are enough). See the lecture slides for examples of possible illustrations.
- Schedule: Choose your team slot for the evaluation time here.
Evaluation
During the Checkpoint #2 evaluation, each group will have 10-15 minutes to showcase their distributed system project. Be prepared to provide a demonstration, displaying the proper functionality of your system. Emphasize the implementation of system logs to offer insights into your project's inner workings. Additionally, represent your design decisions using diagrams, providing a visual guide for a more comprehensive understanding of your distributed system. This evaluation aims to assess your progress, offer constructive feedback, and ensure alignment with the distributed system principles covered in the course. You may only enter the room in the assigned time slot. Make sure to have at least one laptop with your solution ready to be demoed and with the codebase and diagrams ready to be displayed.
Distribution of points
- 3 - Vector Clocks implementation across the 3 services.
- 3 - Queue and Executors implementation, and leader election & mutual exclusion solution.
- 1 - Logging.
- 1 - Project organization, documentation, collaboration, and other factors...
- 1 - Vector Clocks diagram.
- 1 - Leader Election diagram.
Total: 10 points + 3 bonus points (1 bonus for each of the 3 bonus tasks, one in the Vector Clocks practice session, two in the Leader Election)