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のクイックスタートから始められます。