SOFAJRaft

RAFT 共识算法的生产级 Java 实现。「A production-grade java implementation of RAFT consensus algorithm.」

Github星跟蹤圖

SOFAJRaft

build
License
Maven Central

中文

Overview

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
  • Passed Jepsen consistency verification test
  • SOFAJRaft includes an embedded distributed KV storage implementation

Requirements

Compile requirement: JDK 8+ and Maven 3.2.5+ .

Documents

Contribution

How to contribute

Acknowledgement

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

  • NonBlockingHashMap/NonBlockingHashMapLong in JCTools
  • HashedWheelTimer in Netty, also referenced Netty's Pipeline design
  • Efficient encoding/decoding of UTF8 String in Protobuf

Community

See our community materials.

Join the user group on Slack

Scan the QR code below with DingTalk(钉钉) to join the SOFAStack user group.

Scan the QR code below with WeChat(微信) to Follow our Official Accounts.

Known Users

These are the companies using SOFAStack (the names are in no particular order). Please leave a comment here to tell us your scenario to make SOFAStack better.

主要指標

概覽
名稱與所有者sofastack/sofa-jraft
主編程語言Java
編程語言Shell (語言數: 2)
平台
許可證Apache License 2.0
所有者活动
創建於2019-03-04 10:13:43
推送於2025-05-28 02:32:31
最后一次提交2025-05-27 19:32:27
發布數35
最新版本名稱1.3.15.bugfix (發布於 )
第一版名稱1.2.3 (發布於 )
用户参与
星數3.7k
關注者數124
派生數1.2k
提交數388
已啟用問題?
問題數679
打開的問題數47
拉請求數405
打開的拉請求數9
關閉的拉請求數94
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?