Behaviour for the storage backend for various rules.
Time of milliseconds since unix epoch
key :: term
opts :: term
time :: non_neg_integer
Time of milliseconds since unix epoch.
increment(opts, key, inc :: integer, expires_at :: time) :: integer
read(opts, key, now :: time) :: {:ok, term} | :error
read_sliding_counter(opts, key, now :: time) :: non_neg_integer
write(opts, key, value :: term, expires_at :: time) :: :ok
write_sliding_counter(opts, key, now :: time, expires_at :: time) :: :ok