Message states and transitions
The core of Auron Omni is its internal message bus architecture. This article defines the message states and state transitions.
State and state transitions in Auron Omni are straightforward. The status of a message is split across two axes:
- Channel status. Set in the StatusID and the AckStatusID fields;
- Trigger status. Set in the TriggerStatusID field;
The channel status fields are mostly controlled by the channels, while trigger processing controls the trigger status.
These are the message status fields as shown in the Auron Omni Manager. The direction field is supplementary and not a status field.
The following sections explain the status fields in detail.
StatusID
The StatusID shows whether a message is sending or receiving, and whether this has succeeded or failed. This field is used in message processing to determine whether a trigger should run.
Each trigger specifies on which status it should run. Triggers can only run on a permanent status. This means that a trigger can run on a ‘RECEIVED’ status but cannot run on a ‘RECEIVING’ status.
Sending
The schematic below shows the state diagram for sending a message. The permanent states are green and red. Transient states are blue.
The following StatusID values are used when sending a new message:
| StatusID | Description | Trigger |
| CREATING | Creating this message. Message data is incomplete | |
| SCHEDULED | Scheduled for sending. See scheduled time | |
| QUEUED | Queued for sending. See Channel ID | |
| SENDING | Channel is currently sending this message | |
| SENT | Message was sent successfully | ✔ |
| FAILED | Message failed to send | ✔ |
| NOCHANNEL | No channel can send this message | ✔ |
| BLOCKED | A blocking rule prevents this message from sending | ✔ |
| DAILYLIMIT | The channel has already reached its daily limit | ✔ |
Sending and delivery reports
If delivery reports are supported, enabled, and the “Apply Delivery Report” trigger is created, the following additional StatusID values become available:
Here is a description of these states:
| StatusID | Description | Trigger |
| DELIVERED | The message was delivered | ✔ |
| NOTDELIVERED | The message was not delivered | ✔ |
| NOREPORT | Delivery report timed out | ✔ |
Receiving
This is a state diagram for receiving a message:
The following StatusID values are used when receiving a message:
| StatusID | Description | Trigger |
| CREATING | Creating this message. Message data is incomplete | |
| RECEIVING | The message is currently being received by the channel | |
| RECEIVED | The channel has received this message | ✔ |
AckStatusID
The acknowledge status ID (AckStatusID) shows whether a message is acknowledged. Depending on the channel, a message can be acknowledged on StatusID received, sent, both, or neither.
The following acknowledge statuses are possible:
| StatusID | Description |
| N/A. No acknowledge is required | |
| ACK | Acknowledged (positively) |
| NACK | Negative acknowledge |
| WAITING | Waiting to be acknowledged |
TriggerStatusID
The TriggerStatusID (TriggerStatusID) shows whether the message was processed by a trigger and whether this succeeded or failed.
The following trigger statuses are possible:
| StatusID | Description |
| N/A. If a trigger condition is met this message is processed | |
| PENDING | Message was queued for processing |
| PROCESSING | Message is currently being processed |
| PROCESSED | This message was successfully processed |
| NOMATCH | No trigger condition matched. This message does not need processing |
| NOTRIGGERS | No triggers defined. This message does not need processing |
| FAILED | Processing failed. This is an error in the script file |





