Messaging
Message Envelopes
The server processes data by wrapping it in a message envelope, which is routed through one or more integration flows. In addition to the data payload, it contains various types of metadata and a stash for temporary data.
Payload
The envelope keeps the current data payload in the payload
property.
The payload can be on various formats.
It will typically be queried and transformed as the message is processed by processor pipelines.
Metadata
The following table outlines some of the more important metadata properties that can be found on the message envelope:
Name | Type | Description |
---|---|---|
|
String |
The unique identifier of the message exchange. Generated by the server. |
|
String |
The original identifier of the message exchange from when it was initially created. This might differ from the current ID if the message has passed through a processor that generates new exchanges, such as the |
|
String |
The ID of the flow the message is currently being processed in. |
|
String |
The ID of the organization that owns the flow. |
These metadata values can be accessed by expressions.
Exchange Properties
Exchange properties are key/value pairs of strings that will stay available on the message envelope throughout its lifecycle.
They will also be copied over to any new envelopes that are created based on an existing envelope, such as the fragment envelopes created by the split
processor.
The exchange properties will also be copied over to the response envelope that are returned to the flow source from the last processor in the flow processing pipeline.
The exchange properties can be accessed by expressions.
The server uses exchange properties for a whole range of tracking and format info.
Custom exchange properties can easily be defined in any processor config by setting the exchangeProperties
config property.
See the processor documentation for more details.
Stash
The message envelope provides a stash where payloads and other data can be stored for later use. Note that the stash is scoped on a single flow and will never be distributed or shared between flows.
The stash can be set using the saveToStash processor. Values in the stash can be accessed by expressions.