This is an engine on which a DBMS can be built upon; for this reason it's very difficult to use directly without building another abstraction layer on top.
- **Can I use objects instead of byte arrays?**
Yes, you must serialize/deserialize them using a library of your choice.
CodecSerializer allows you to implement versioned data using a codec for each data version.
Note that it uses 1 to 4 bytes more for each value to store the version.
- **Why there is a snapshot function for each database part?**
Since RocksDB and lucene indices are different software, you can't take a snapshot of everything in the same instant.
A single snapshot must be implemented as a collection of all the snapshots.
- **Is CavalliumDB Engine suitable for your project?**
No.
This engine is largely undocumented, and it doesn't provide extensive tests.