This repository contains the assignments for the Distributed Systems course. Each assignment focuses on a different aspect of distributed systems, leveraging various technologies and algorithms.
In this assignment, we explore different communication protocols and messaging systems:
- GRPC: A high-performance, open-source universal RPC framework.
- RabbitMQ: An open-source message broker software that implements the Advanced Message Queuing Protocol (AMQP).
- ZeroMQ: A high-performance asynchronous messaging library aimed at use in scalable distributed or concurrent applications.
This assignment involves implementing the Raft consensus algorithm using GRPC. The Raft algorithm is a consensus algorithm that is designed to be easy to understand and implement. It is used to manage a replicated log.
In this assignment, we implement the MapReduce programming model using GRPC. MapReduce is a programming model and an associated implementation for processing and generating large data sets with a parallel, distributed algorithm on a cluster.
To set up and run the assignments, follow the instructions in each assignment's directory. Each assignment has its own set of dependencies and setup instructions.
For any questions or issues, please open an issue on this repository or contact the course instructor.