Repolode
etcd-io

etcd-io/etcd

Distributed, reliable key-value store for the most critical data of a distributed system, built on Raft consensus with a gRPC API.

Stars
52,401
Forks
10,541
Open issues
391
Last commit
6 hours ago

What is it?

etcd is a distributed key-value store written in Go. It keeps data replicated across a cluster of members using the Raft consensus algorithm, so the cluster stays available and consistent when individual members fail. Clients interact with it through a gRPC API, and the project ships etcdctl, a command-line client for reading and writing keys.

The project focuses on storing small pieces of critical coordination data, such as configuration and service metadata, rather than bulk storage. It supports automatic TLS and optional client certificate authentication. Cluster members communicate on port 2380 and clients connect on port 2379 by default.

etcd is widely used as the backing store for Kubernetes and is paired with other distributed systems projects. The repository includes a local multi-member cluster setup via Procfile and goreman, along with Go client libraries for the v3 API.

Key features

  • 01Raft-based replication keeps a cluster consistent and available when members fail.
  • 02Well-defined gRPC API for reading, writing and watching keys.
  • 03Automatic TLS with optional client certificate authentication.
  • 04etcdctl command-line client for interacting with the cluster.
  • 05Go client libraries for the v3 API.
  • 06Local multi-member cluster setup via Procfile and goreman.

Use cases

  • Storing cluster state and configuration for Kubernetes control planes.
  • Service discovery and coordination across distributed applications.
  • Keeping small, critical metadata consistent across multiple servers.
  • Learning or testing Raft-based distributed systems locally.

Quick start

  1. 1

    Download a pre-built release binary from the releases page

  2. 2

    Start a single-member etcd server

    /tmp/etcd-download-test/etcd
  3. 3

    Set a key with etcdctl

    etcdctl put mykey "this is awesome"
  4. 4

    Retrieve the key with etcdctl

    etcdctl get mykey

Things to know

  • Running a multi-member local cluster requires installing goreman and using the repository's Procfile.
  • The main branch may be unstable or broken, so use tagged releases for production.

Topics

FAQ

What is etcd?
Distributed, reliable key-value store for the most critical data of a distributed system, built on Raft consensus with a gRPC API. etcd is a distributed key-value store written in Go. It keeps data replicated across a cluster of members using the Raft consensus algorithm, so the cluster stays available and consistent when individual members fail. Clients interact with it through a gRPC API, and the project ships etcdctl, a command-line client for reading and writing keys.
Is etcd free to use? What license does it have?
etcd is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
Is etcd still maintained?
Actively maintained. The last commit to etcd was on Oct 19, 2026.
What can I use etcd for?
Storing cluster state and configuration for Kubernetes control planes. Service discovery and coordination across distributed applications. Keeping small, critical metadata consistent across multiple servers. Learning or testing Raft-based distributed systems locally.
How do I install etcd?
Download a pre-built release binary from the releases page Start a single-member etcd server: /tmp/etcd-download-test/etcd Set a key with etcdctl: etcdctl put mykey "this is awesome" Retrieve the key with etcdctl: etcdctl get mykey
Where can I get etcd?
The source code and installation instructions are on GitHub: https://github.com/etcd-io/etcd

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects