// the find
tidwall/summitdb
In-memory NoSQL database with ACID transactions, Raft consensus, and Redis API
SummitDB is a Redis-protocol-compatible in-memory database that adds Raft consensus, secondary indexes, spatial queries, and JSON document support on top of BuntDB. It's for teams that want Redis-style simplicity with built-in clustering and stronger consistency guarantees than Redis's primary/replica setup. Think: embedded config stores, game state, small distributed caches that need to survive node failures.
The combination of Raft consensus with a Redis wire protocol is genuinely useful — you get strong consistency without learning a new client library. Secondary indexes via SETINDEX are well-thought-out: you can index arbitrary JSON paths and run range queries or spatial lookups against them, which Redis only approximates with sorted sets and Lua hacks. Fencing tokens are a first-class primitive, which most distributed key-value stores leave as an exercise to the reader. The spatial indexing is up to 20 dimensions using an R-tree, which goes well beyond the Geohash-based GEO commands Redis offers.
Last commit is 2022, and the vendored hashicorp/raft is an old version that predates the v3 API overhaul — any serious adoption would immediately hit dependency rot. The scripting engine is Otto (JS ES5 interpreter in Go), which is also abandoned and doesn't support ES6+; you're stuck writing scripts like it's 2013. Missing Redis data types (Sets, Hashes, Sorted Sets, PubSub) means the Redis-compatibility story breaks down fast if your app uses anything beyond string commands. There's no auth, no TLS, no ACL system documented anywhere — fine for a trusted internal network, a problem everywhere else.