A method called deferEvent shouldn't take an instance of Message as it's principal argument. And since the interface name is **Event**QueueInterface, it shouldn't be queueing messages.

It seems this should probably become a MessageQueueInterface instead, with a queueMessage method.