Today we would like to announce etcd, a highly available key value store for shared configuration data. CoreOS built etcd to solve the problem of shared configuration and service discovery. etcd is inspired by projects like Zookeeper, or doozer, but is a completely new piece of software. Some of the key design features:
- Simple: curl'able user facing API (HTTP+JSON)
- Secure: optional SSL client cert authentication
- Fast: benchmarked 1000s of writes/s per instance
- Reliable: Properly distributed and replicated log using raft
- Open source: Active, well maintained, open source project
etcd uses the raft algorithm; a consensus algorithm for replicated logs. The CoreOS team has been heavy contributors to the go-raft implementation, which is maintained by benbjohnson. We have our own implementation, but it is mainly a staging repo before being merged upstream. Thank you to Ben for his awesome contributions to date!
etcd is written in Go.
Check out the documentation on github for many examples of how to use etcd to share configuration data, watching for changes on particular keys, or perform master election.