Etcd 3.3 – Improvements to stability, performance, and more
coreos.com
coreos.com
On the face of it, it feels like using a more established an well tested database would have been a better choice, even with the facts available to them at the time. Personally I would have been really reluctant to adopt a database whose first commit was in the previous year with only one major contributor. Three years later, they've had to adopt the database code after it was abandoned by the original maintainer.
The reason for adopting a pure Go key value store is to utilize all of the Go tooling, like profiling, to aid with discovering performance bottlenecks. Crossing the language boundary loses visibility into problems.
Plus, by having a simple Go only build system we reduce the burden for on-boarding developers which I believe is part of the reason for etcd's solid and growing developer base: it is easy to get into. Well, easy relative to other databases, ha!
There are lots of reasons why you might not want to use etcd, but if you can live with simple K/V, need HA, and need something that is simple and just works, I can't think of anything else that is comparable except for Consul (which I haven't used much, but has similar design principles).
Badger looks promising, though I'm not database-expert enough to know when to choose LSM tree database. (BoltDB is B tree, and Badger is LSM tree with value log.)