local engine_key = KEYS[1]
local revision_key = KEYS[2]
local channel = KEYS[3]
local engine_id = ARGV[1]
local exists = redis.call('EXISTS', engine_key)
if exists == 0 then
return 0
end
redis.call('DEL', engine_key)
local new_revision = redis.call('INCR', revision_key)
local event = {
event_type = 'REMOVE',
engine_id = engine_id,
timestamp = redis.call('TIME')[1], revision = new_revision,
payload = nil
}
local event_json = cjson.encode(event)
redis.call('PUBLISH', channel, event_json)
return new_revision