Cellar is the append-only storage backend in Go designed based on Abdullin Cellar. This fork is currently being redesigned, so the API should be considered unstable.
Core features:
- events are automatically split into the chunks;
- chunks may be encrypted using the Cipher interface;
- designed for batching operations (high throughput);
- supports single writer and multiple concurrent readers;
- store secondary indexes, lookups in the metadata DB.
In the alphabetical order:
Don't hesitate to send a PR to include your profile.
Cellar stores data in a very simple manner:
- MetaDB database is used for keeping metadata (including user-defined), see metadb.go;
- a single pre-allocated file is used to buffer all writes;
- when buffer fills, it is compressed, encrypted and added to the chunk list.
3-clause BSD license.