This crate is currently under active development and is not ready for use yet.
just another cache.
jac is a distributed key-value store backed by Redis. It has a few really nice properties.
- Versioned values in redis
- Default invalidation strategies to optimise network IO (Latest invalidation strategy will always get latest)
- Compositional invalidation strategies (For example implementing a TTL invalidation strategy over the Latest invalidation strategy.)
The main aim of jac can be summed up in 2 points:
- To have a reliable KV store which will not allow concurrent modification of a value. Each version is well defined with a linear history.
- To be blazingly fast while always giving you the most recent value (unless otherwise specified by your invalidation strategy)
At OpenQuery we are building a distributed data lake driver. And that required us to maintain a global state where we can quickly and correctly put and retrieve arbitrary pieces of data.
Hence jac was born. It was intended to behave as close to a Mutex as possible. However due to the fact that hitting underlying store requires making a network call, this was not possible.
// todo
jac is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.
See Contributing.