Instance messages
- Last UpdatedAug 19, 2026
- 2 minute read
Instance messages are sent to share specific data and object examples that match a set OMF schema. Instance messages are data-centric and not structural. They rely on schema messages for validation and interpretation. .
Like a schema message, instance messages use an object-of-typed-arrays structure. Each top-level array groups instances of a specific classification, allowing consumers to process entities, events, streaming data, and relationships independently. Multiple instance types can be sent together in a single message.
You can use an instance message to:
-
Create or update entities
-
Send streaming data values
-
Publish events
-
Define relationships between instances
-
Send grouped updates or snapshots of runtime data
Instance message structure
A instance message is a JSON objects that may include any of the following :
|
Array name |
Description |
|---|---|
|
entities |
Instance of entity types. |
|
streamingData |
Timestamped values associated with streaming data types |
|
events |
Event instances, including lifecycle information |
|
relationships |
Relationships between entity, event, or streaming data instances |
As with schema messages, each of these arrays are optional, but when you used, it must only contain objects of that specific kind. The array name explicitly defines how the objects are interpreted.
Instance message example
The following example creates a tank entity, an active event, two streaming values, and relationships between them
omfversion: 2.0
messagetype: instance
action: create
messageformat: json
{
"entities": [
{
"typeid": "Tank",
"id": "Tank-101",
"name": "Tank 101",
"description": "Primary finished-product storage tank",
"datasource": "Plant-A-Asset-System",
"tags": [
"Plant-A",
"Storage"
],
"metadata": {
"area": "Storage",
"criticality": "High"
},
"value": {
"SerialNumber": "TK-101-2026",
"Model": "ST-5000",
"Capacity": 5000.0
}
}
],
"events": [
{
"typeid": "HighPressureAlarm",
"id": "Alarm-Tank-101-20260717-001",
"name": "High pressure in Tank 101",
"description": "Tank pressure exceeded the configured operating limit",
"starttime": "2026-08-05T08:03:39.3157748Z",
"endtime": null,
"datasource": "Plant-A-Alarm-System",
"tags": [
"Pressure",
"Active"
],
"value": {
"Severity": 2,
"Message": "Pressure exceeded 450 kPa",
"MaximumPressure": 463.8
}
}
],
"streamingdata": [
{
"id": "Tank-101.Measurements",
"values": [
{
"Timestamp": "2026-07-17T22:29:00Z",
"Pressure": 442.1,
"Temperature": 27.4,
"ValveState": 0
},
{
"Timestamp": "2026-07-17T22:30:00Z",
"Pressure": 463.8,
"Temperature": 27.6,
"ValveState": 1
}
]
}
],
"relationships": [
{
"source": {
"collection": "entities",
"id": "Tank-101"
},
"target": {
"collection": "streamingdata",
"id": "Tank-101.Measurements"
}
},
{
"source": {
"collection": "events",
"id": "Alarm-Tank-101-20260717-001",
"type": "Related",
"label": "hasEntity"
},
"target": {
"collection": "entities",
"id": "Tank-101"
}
}
]
}