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