asopi tech
asopi techIndie Developer

Asopitech VS

hashicorp/raft vs Alopex Chirps

Goのライブラリhashicorp/raftの複製ログとFSM、保存先の差し替えを、Alopex Chirpsと比べて紹介します。

更新: 2026/10/13

hashicorp/raftとは

hashicorp/raftは、複製されたログを管理し、FSM(有限状態機械)と組み合わせて複製状態機械を作る、Goのライブラリです。Consul、Nomad、Vaultなどで使われています。

仕組み

  • FSM:アプリはFSMを実装し、コミットされたログを順に反映します。スナップショットと復元もFSMが受け持ちます。
  • 保存先:ログとメタデータの保存先(LogStoreとStableStore)を差し替えられます。READMEは、MDBStoreを使うraft-mdbを勧め、Bboltを使うraft-boltdbも挙げています。
  • トランスポート:ノード間の通信は、トランスポートとして差し替えられます。

主な機能

  • リーダー選出、ログの複製、スナップショット、メンバーの変更。
  • Goのアプリにそのまま組み込めます。

制限

Goのライブラリです。ノードの発見やメンバーシップの監視は持たず、Consulのように、gossipなどの別の仕組みと組み合わせて使います。

Alopex Chirpsとの違い

どちらも、アプリに組み込むRaftのライブラリで、状態機械はアプリが持ちます。

hashicorp/raftはGoで、合意の部分に絞っています。Alopex ChirpsはRustで、Raftに加えて、シードからの参加、SWIM方式のgossipによるメンバーシップ、QUICと相互TLSによるメッセージ送信を1つにまとめています。複数のRaftグループを、グループごとの保存領域で動かす仕組みも備えます。

Rustのアプリで、Raftとメンバーシップと通信をひとまとめに使えるAlopex Chirpsをおすすめします。GitHubのクイックスタートから試せます。

参考資料

関連ページ