Contains the protocol used to define all Ring session storage engines.
An interface to a session storage engine. Implementing this protocol allows
Ring session data to be stored in different places.
Session keys are exposed to end users via a cookie, and therefore must be
unguessable. A random UUID is a good choice for a session key.
Session stores should come with a mechanism for expiring old session data.
(delete-session store key)
Delete a session map from the store, and returns the session key. If the
returned key is nil, the session cookie will be removed.
(read-session store key)
Read a session map from the store. If the key is not found, nil
(write-session store key data)
Write a session map to the store. Returns the (possibly changed) key under
which the data was stored. If the key is nil, the session is considered
to be new, and a fresh key should be generated.