A resilient and replicated key-value storage system designed to ensure data consistency and availability across a decentralized cluster. This project was developed as part of the Distributed Systems curriculum at the Federal University of São Carlos (UFSCar).
- Consistency: Implements an active replication protocol where the receiving node acts as a coordinator to synchronize data across all peers.
- Communication: High-performance Remote Procedure Calls (RPC) using gRPC and Protocol Buffers.
- Fault Tolerance: Distributed architecture designed to maintain data integrity across multiple nodes.
- Orchestration: Fully containerized environment for simulating real-world network isolation.
- Language: Python 3.x
- Middleware: gRPC, Protocol Buffers
- Infrastructure: Docker, Docker Compose
/proto: Service definitions and message structures./src/node: Server-side logic, storage implementation, and replication protocols./src/client: Client implementation for system interaction and testing./docker: Container orchestration and network configuration.
- Clone the repository.
- Ensure Docker and Docker Compose are installed.
- Start the cluster:
docker-compose up --build
- Run the test client:
python src/client/main.py
Developed for the Distributed Systems (Sistemas Distribuídos) course.
- Department of Computing (DC)
- Federal University of São Carlos (UFSCar)