You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
SOFAJRaft is a production-level, high-performance Java implementation based on the RAFT consistency algorithm that supports MULTI-RAFT-GROUP for high-load, low-latency scenarios.
With SOFAJRaft you can focus on your business area. SOFAJRaft handles all RAFT-related technical challenges. SOFAJRaft is very user-friendly, which provides several examples, making it easy to understand and use.
Features
Leader election and priority-based semi-deterministic leader election
Log replication and recovery
Read-only member (learner)
Snapshot and log compaction
Cluster membership management, adding nodes, removing nodes, replacing nodes, etc.
Mechanism of transfer leader for reboot, load balance scene, etc.
Symmetric network partition tolerance
Asymmetric network partition tolerance
Fault tolerance, minority failure doesn't affect the overall availability of system
Manual recovery cluster available for majority failure
Linearizable read, ReadIndex/LeaseRead
Replication pipeline
Rich statistics to analyze the performance based on Metrics
SOFAJRaft was ported from Baidu's braft with some optimizing and improvement. Thanks to the Baidu braft team for opening up such a great C++ RAFT implementation.
License
SOFAJRaft is licensed under the Apache License 2.0. SOFAJRaft relies on some third-party components, and their open source protocol is also Apache License 2.0.
In addition, SOFAJRaft also directly references some code (possibly with minor changes), which open source protocol is Apache License 2.0, including
HashedWheelTimer in Netty, also referenced Netty's Pipeline design
Efficient encoding/decoding of UTF8 String in Protobuf