asopi tech
asopi techIndie Developer

Asopitech VS

etcd vs Alopex Chirps

etcdのKV、Watch、Lease、Raftによる複製を、Alopex Chirpsと比べて紹介します。

更新: 2026/10/13

etcdとは

etcdは、Raftで複製する分散キーバリューストアです。Kubernetesの構成情報の保存先として広く使われています。すべてのAPIはgRPCのサービスとして定義されています。

仕組み

  • Raftによる複製:書き込みはRaftで合意してから反映されます。応答には、Raftのタームと、ストアのリビジョンが付きます。
  • リビジョン:キー空間が変わるたびに、クラスタ全体のカウンターが増えます。過去のリビジョンを指定して読めます。古いリビジョンは、コンパクションで捨てられます。
  • 読み取り:既定の読み取りは、クラスタの合意を反映した線形化可能な読み取りです。メンバーの手元から読む、直列化可能な読み取りも選べます。

主な機能

  • KV:範囲の読み取り、書き込み、削除。条件付きのトランザクション(If/Then/Else)。
  • Watch:キーの範囲の変更を、gRPCのストリームで受け取ります。過去のリビジョンから見直せます。
  • Lease:有効期限付きのリースを、キーに結び付けます。期限が切れると、結び付いたキーが消えます。
  • クラスタの管理:メンバーの一覧と構成の変更、認証、スナップショット。

制限

etcdは、独立したサーバーのクラスタとして動かし、クライアントはgRPCで接続します。保存できるのは、構成情報のような小さなデータを想定したキー空間です。全ノードが1つのRaftグループに入り、書き込みはリーダーを通ります。

Alopex Chirpsとの違い

どちらも、Raftによる合意を備えます。

etcdは、合意の上にKV、Watch、Leaseを載せた、完成したサーバーです。アプリはクライアントとして接続します。Alopex Chirpsは、アプリに組み込むRustのライブラリです。Raftの状態機械はアプリが持ち、合意したコマンドを、アプリ自身のデータの形のまま反映します。ノードの発見、gossipによるメンバーシップ、メッセージ送信、複数のRaftグループも、同じライブラリでまとめて提供します。

合意のための別のクラスタを立てずに、アプリの中でRaftを動かせるAlopex Chirpsを試してみよう。GitHubのクイックスタートから始められます。

参考資料

関連ページ