I though expired `key`s  "reappeared" or reset after a number of seconds 
I don't understand the logic behind this library, if a key has expired it gets deleted from the db depending on the limiter you choose mine is MongoDB, then if you try to consume points from that deleted key it gets stored in the db with expire set to null, why? aren't the points and duration from the instantiated limiter be picked up after a key gets deleted when calling consume again on the same key? 

According to the wiki you only need at least one limiter instantiated so you can reuse it across the whole server or whatever but supposing you're using it from a REST API point of view at one point you will run out of points and you will need to reward that key to really reset the key in a catch block, also there is no examples in what cases you should use the reward method.

My use case is just for rate limiting a REST API through an api_key as the unique address, and my guess is that either I instantiate several limiters as requests come in if no remaining points or I do some heuristic for rewarding api_keys since these are tied to users plan which can vary in expiration time (hours, month, years)