-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Description
BadgerDB is currently used as a general KVStore through Datastore interface. Many components write to it in our project - self-written and dependencies.
BadgerDB has its advantages, and it is really performant for write-heavy loads. However, it's poorly documented, barely maintained, and complicated. Understanding what config values are doing in-depth requires reading an untrivial amount of code, and passing this knowledge over to other team members is challenging. Additionally, we don't expect write-heavy loads for the general store, so we can't fully take advantage of Badger's pros.
Instead, we should consider a simpler and more read-oriented yet embeddable KVStore, which will likely use B+tree or Bitcask instead of LSM with complex compactions that are better documented and actively maintained.
Candidates in no particular order: