Skip to content

Toy project implementing Raft Distributed Consensus Algorithm using Scala and FP

Notifications You must be signed in to change notification settings

nebtrx/functional-raft

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

functional raft

Build Status

This is an implementation of the Raft Consensus Algorithm. It relies on a simplified functional actor system (assembled by me with inspiration from a couple of places) built on top of fs2 queues and cats-effects.

The purpose behind this was to learn more/exercise my knowledge about cats-effects and concurrency while having fun.

Implementation Roadmap & Progress

Since this is a toy project and I started working in the funnier segment, let's do some planning to ensure its completion in a, hopefully, close future.

Raft Consensus Algorithm:

  • Leader Election.
  • Log replication.
  • Dynamic cluster members changes.

Software Engineering:

  • Functional actors using concurrency primitives.
  • Logging.
  • Add a code formatter tool. (Scalafmt FTW.)
  • Add CI integration. (Travis FTW.)
  • Testing. (Damn it!: I was too excited about getting a MVP.)
  • Benchmarking against an implementation using akka actors. (Because why not?)

Knowledge sharing:

  • Write a blog post. (This is the hardest part. I'm super-lazy for writing.)

Releases

No releases published

Packages

 
 
 

Languages