Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow configuration of consistency policy #4

Open
kelvinmwinuka opened this issue Feb 27, 2024 · 0 comments
Open

Allow configuration of consistency policy #4

kelvinmwinuka opened this issue Feb 27, 2024 · 0 comments
Labels
advanced An advanced enhancement requiring deep knowledge of the codebase and/or a particular topic enhancement New feature or request

Comments

@kelvinmwinuka
Copy link
Collaborator

EchoVault is currently strongly consistent. This change will aim to make this policy configurable.

At the moment, echovault has a memberlist layer and a raft layer. The memberlist layer is mainly used to establish a cluster skeleton, essentially the "chassis" of the cluster. Memberlist nodes will communicate with other nodes to ask permission to join the raft cluster using the gossip protocol. Once the gossiped message reaches the raft cluster leader, the leader will add the node to the raft cluster.

We must allow a user to configure this functionality using the config flags. The option will enable the user to forgo the raft layer and use the memberlist layer for gossip-based state propagation to allow for eventual consistency. Otherwise, the user can opt for the strong consistency of the raft layer.

@kelvinmwinuka kelvinmwinuka added enhancement New feature or request advanced An advanced enhancement requiring deep knowledge of the codebase and/or a particular topic labels Feb 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
advanced An advanced enhancement requiring deep knowledge of the codebase and/or a particular topic enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant