event queue with a watcher.
delay posting messages;

use a minheap to deal with message timeout.