Messages are response payloads created from a request. They are enqueued and popped from the queue to be handled. Messages are tied to a
MessageType which corresponds to the payload model that the message contains. A message should contain the corresponding request id that it is a response to.