Skip to content

Raft Go Channel Library v2.2: Advanced Raft with Joint Consensus

Latest
Compare
Choose a tag to compare
@nnaakkaaii nnaakkaaii released this 29 Jan 17:07
· 6 commits to master since this release
bba6d63

Raft Go Channel Library v2.2: Advanced Raft with Joint Consensus

Release Notes:

Raft Go Channel Library v2 is now available! This new version brings advanced features and enhancements to the robust distributed consensus solution. With the introduction of Joint Consensus, this library is now more versatile and capable of handling complex cluster membership changes.

What's New in v2:

  • Joint Consensus Support: Implementing the Joint Consensus mechanism, this library can now handle more complex scenarios involving adding or removing multiple nodes from the cluster safely.
  • Dynamic Cluster Reconfiguration: Easily add or remove nodes from the Raft cluster on the fly, without interrupting ongoing operations.

What's Included in v1:

  • Leader Election: Fully implemented leader election process, ensuring that the cluster always has a designated leader to manage log replication.
  • Log Replication: Robust log replication mechanism, ensuring consistency across all nodes in the cluster.
  • Fault Tolerance: Handles node failures gracefully, allowing the cluster to continue operating even when nodes go down.
  • Channel-Based Communication: Leverages Go's channel for inter-node communication, enhancing performance and reducing complexity.
  • Easy Integration: Designed for easy integration with various storage and log systems, making it adaptable to different application needs.

Minor Versions

v2.1: Add gRPC Reflection to Enable Server API Discovery

  • Added gRPC Reflection: gRPC reflection is included to simplify server API discovery and debugging. This enhancement is particularly useful for developers using tools like grpcurl to interact with the Raft server.

v2.2: Fix Leader Election for Single-Peer Cluster in Raft Implementation

  • Adjusted the initial vote count in sendRequestVotes to start from zero.
  • Explicitly added a vote for the server itself when starting the election process.