public event Action<IInputPort, GraphMessage> MessageEnqueuedThe main purpose of this event is signaling progress / adding to the message's processing history. Therefore the event is called before enqueueing the message to avoid the race condition where the dequeueing thread could append "Accepted" to the hisory before the enqueueing thread has managed to append "Queued" to the history.