move deferred management from Node.flush to Node.consume
wrap stream node messages in object containing metadata
add duplicate message detection to Node.consume(). Will also stop propagation