Drop "generic" messages in favour of {Bucket,Key} and avoid io_lib in the fast path. Switch to os:timestamp() to avoid global locking in erlang:now().