Skip to content

πŸš€ ✨ Implemented a Raft-based distributed metadata management system mimicking Kafka's KRaft protocol, implementing log replication, leader election, and CRD APIs via a robust HTTP server for brokers, and clients.

Notifications You must be signed in to change notification settings

karthik2603-theBrogrammer/YAKt-Yet-Another-KRaft

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 

Repository files navigation

YAKt (Yet Another KRaft) βš™οΈ

  • YAKt is our semester project for the Big Data (UE21CS343AB2) course.
  • It involves developing the KRaft protocol to metadata for the Kafka system.

What is KRaft ?

  • KRaft is a event based, distributed metadata management system that was written to replace Zookeeper in the ecosystem of Kafka.
  • It uses Raft as an underlying consensus algorithm to do log replication and manage consistency of state.

Project Objectives and Outcomes

  • The Raft Consensus algorithm and concepts of Leader Election, Log Replication, Fault Tolerance

  • ZAB Consensus algorithm

  • Kraft and Zookeeper Architecture and its nuances

  • Event driven Architecture

  • Kafka Architecture

  • Outcomes

  • A robust system that mimics the working of KRaft

  • A project with a real world use-case

Steps to Run the Project

cd kraft
pip3 install -r requirements.txt
python3 raft.py 1000 1001 1002
python3 raft.py 1001 1001 1002
python3 raft.py 1002 1000 1001
  • You can Now Make your API endpoint via the GET or POST Messages!

Contributors:

  1. Jugal Kothari PES1UG21CS251
  2. Karthik Namboori PES1UG21CS269
  3. Prerana Kulkarni PES1UG21CS451
  4. Shreya N Palavalli PES1UG21CS575

About

πŸš€ ✨ Implemented a Raft-based distributed metadata management system mimicking Kafka's KRaft protocol, implementing log replication, leader election, and CRD APIs via a robust HTTP server for brokers, and clients.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%