1. A method for processing messages, from one or more applications, in a gateway, comprising: obtaining at the gateway an application payload from an application; creating a raw message from the obtained application payload, the raw message including a raw message header and a payload, the raw message header including a message type block, the payload including content of the application payload; and creating a gateway message from the raw message in accordance with the message type provided in the message type block, the gateway message including a gateway message header and the payload, the gateway message header including a unique message identifier block, a target block identifying where the gateway message is going, and a history block providing a log of what has happened to the gateway message, wherein each block includes one or more values.