Skip to content

shuttle-hq/jac

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This crate is currently under active development and is not ready for use yet.

jac

Released API docs License

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)

ferris

Origin

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.

Example

// todo

License

jac is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.

Contribution

See Contributing.

Releases

No releases published

Packages

No packages published

Languages