<commit_before>rafted
======


```rafted``` is a Golang Library that implements the Raft distributed consensus protocol.

```Raft``` is an understandable consensus protocol which reaches distributed consistency by using replicated logs and state machines among a cluster of nodes.

For more details on ```Raft```, please refer to the paper [In Search of an Understandable Consensus Algorithm][raft-paper] and the [Raft Consensus homepage][raft-homepage].

## Another Raft Implementations

There is a list of Raft implemetations on the [Raft website][raft-website], where you could find dozens of Raft implementations written in various programming languages. 

At the moment this project is created, there is at least 5 implementations written in Golang. Among them these two projects are much better written and maintained:

1. [```go-raft```][go-raft-github]
2. [```hashicorp-raft```][hashicorp-raft-github]

After taking a close look into the existing raft implementation projects, we find some issues as the following. It is not easy to change these existing projects to meet our needs. And then we decides to give a shot for a new implementation.

#### 1. Not Full Feature

The existing implemenations don't provide all features described in Raft paper. These features include

1. Leader Election, Log Replication
2. Membership Change
3. Log Compaction<commit_msg>fix typo<commit_after>rafted
======


```rafted``` is a Golang Library that implements the Raft distributed consensus protocol.

```Raft``` is an understandable consensus protocol which reaches distributed consistency by using replicated logs and state machines among a cluster of nodes.

For more details on ```Raft```, please refer to the paper [In Search of an Understandable Consensus Algorithm][raft-paper] and the [Raft Consensus homepage][raft-homepage].

## Another Raft Implementation

There is a list of Raft implemetations on the [Raft website][raft-website], where you could find dozens of Raft implementations written in various programming languages. 

At the moment this project is created, there is at least 5 implementations written in Golang. Among them these two projects are much better written and maintained:

1. [```go-raft```][go-raft-github]
2. [```hashicorp-raft```][hashicorp-raft-github]

After taking a close look into the existing raft implementation projects, we find some issues as the following. It is not easy to change these existing projects to meet our needs. And then we decides to give a shot for a new implementation.

#### 1. Not Full Feature

The existing implemenations don't provide all features described in Raft paper. These features include

1. Leader Election, Log Replication
2. Membership Change
3. Log Compaction
{'fraction_non_alphanumeric': 0.07027818448023426, 'fraction_numerical': 0.005124450951683748, 'mean_word_length': 5.0198237885462555, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1132017', 'n_tokens_mistral': 697, 'n_tokens_neox': 652, 'n_words': 374}