Skip to content

A general purpose consensus service based on Basic Paxos

License

Notifications You must be signed in to change notification settings

robreeves/agreed

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

Summary

Agreed is a general purpose consensus library based on basic Paxos. The API exposes methods to propose a new value and get the most recent consensus value.

API

import com.robertpreeves.agreed.*;

// Create a node
AgreedNode<T> node = AgreedNodeFactory.create(localNodeId, localNodePort, otherNodes, T.class);

// Propose a value
T acceptedValue = node.propose(newValue);

// Get the current value
T currentValue = node.current();  

Disclaimer

This is an academic exercise to learn the basics of Paxos. There are many things that could be improved. Performance could be optimized, the service could be hardened (i.e. handle durable state corruption), etc. For a production application there is also the small detail of writing tests...

About

A general purpose consensus service based on Basic Paxos

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages