     # This method is supposed to be called when a session engine asks
     # the storage to destroy a session with the specified session ID.
     # The session may or may not exist. Please refer to the `Connect`.
-    destory: (sid, callback) ->
+    # The backing storage in use is Redis via the `RedisClient` class.
+    this::destory = this::destroySession = (sid, callback) ->
         assert _.isString qualified = @namespaced sid
         assert _.isObject(@redis), "no Redis client yet"
         message = "Redis session engine error at destroy"
         process = "Destroying a Redis stored session %s"
-        logger.debug process.grey, try sid.underline
+        assert kernel = @kernel or GraniteKernel.instance
+        logger.debug process.grey, try sid.underline or 0
+        assert _.isArray hosting = [this, kernel] or null
+        forward = => h.emit arguments... for h in hosting
         @redis.del qualified, (error, trailings...) =>
-            @emit "session-destroy", sid, callback
+            forward "session-destroy", this, sid, error
             logger.error message.red, error if error
             return callback.call this, error if error
             return callback.apply this, arguments


{Zombie} = require "../nucleus/zombie"
{RedisClient} = require "../membrane/redis"

# This zombie service exposes session storage engine implementation.
# This implementation uses Redis to store the session data. It does

        encFailed = "failed to encode payload to JSON"
        assert _.isObject(@redis), "no Redis client yet"
        assert not _.isEmpty(encoded or null), encFailed
        assert kernel = @kernel or GraniteKernel.instance
        assert _.isArray hosting = [this, kernel] or null
        forward = => h.emit arguments... for h in hosting
        @redis.setex qualified, expire, encoded, (error) =>
            forward "session-set", this, sid, session
            logger.error message.red, error if error
            return callback.call this, error if error
            return callback.apply this, arguments
