asopi tech
asopi techIndie Developer

Asopitech VS

etcd-io/raft vs Alopex Chirps

Goのライブラリetcd-io/raftの、合意の核だけを実装する設計を、Alopex Chirpsと比べて紹介します。

更新: 2026/10/13

etcd-io/raftとは

etcd-io/raftは、Raftのアルゴリズムだけを実装したGoのライブラリです。etcd、Kubernetes、CockroachDB、TiDBなどの分散システムを支えています。

仕組み

  • 最小限の設計:ネットワークとディスクの入出力はアプリに任せます。アプリは、ノード間でメッセージを運ぶトランスポートと、ログの保存を自分で実装します。
  • 決定的な状態機械:Raftを、メッセージを入力とする状態機械として表すので、テストで振る舞いを再現できます。

主な機能

  • リーダー選出、ログの複製、ログの圧縮、メンバーの変更、リーダーの移譲。
  • リーダーとフォロワーから返せる、線形化可能な読み取り専用のクエリ。
  • パイプライン化、フロー制御、メッセージとエントリのバッチ化。

制限

トランスポートとログの保存は、アプリが作る必要があります。Goのライブラリです。

Alopex Chirpsとの違い

どちらも、アプリに組み込むRaftの部品です。

etcd-io/raftは、合意の核に絞り、通信と保存をアプリに任せます。Alopex Chirpsは、Rustで、その外側も持ちます。QUICと相互TLSのトランスポート、alopex-coreに載るRaftのログの保存、ノードの発見とメンバーシップ、スナップショットの転送が、最初からそろっています。

トランスポートとログの保存を自分で書かずにRaftを動かせるAlopex Chirpsを試してみよう。GitHubのクイックスタートから始められます。

参考資料

関連ページ