Skip to content

An implementation of the Raft consensus protocol in the Bloom programming language.

License

Notifications You must be signed in to change notification settings

amidvidy/whitewater

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

whitewater

An implementation of the Raft consensus protocol with static membership in the Bloom programming language.

We have implemented Leader Election and Log Replication as two separate modules.

For the purpose of test driving the log replication module, we have also implemented an ordered, consistent, and distributed simple calculator.

This was made as a final project for Joe Hellerstein and Peter Alvaro's Programming the Cloud course at UC Berkeley.

Note

This is currently a work in progress. We believe most of the functionality is in place, but there are a few issues that could potentially cause data loss or corruption. Thus in its current state, we do not recommend the use of whitewater in production.

Module Documentation

Election

Server State

Timeout

Log

Ordered State Machine

Acknowledgements

Thanks to Diego Ongaro for providing guidance on the Raft protocol and for reviewing our code for correctness issues.

Thanks to Peter Alvaro for general guidance and advice on how to best implement configurable timers in Bloom.

About

An implementation of the Raft consensus protocol in the Bloom programming language.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages