Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
This article provides a breakdown of the definition structure for Eventstream items.
Definition parts
This table lists the Eventstream definition parts.
| Definition part path | type | Required | Description | 
|---|---|---|---|
| eventstream.json | Eventstream (JSON) | ✅ | Describe the topology of Eventstream item | 
| eventstreamProperties.json | EventstreamProperties (JSON) | ❌ | Describe Eventstream metadata | 
| .platform | PlatformDetails (JSON) | ❌ | Describes the metadata of the item | 
Each definition part of an Eventstream item is constructed as follows:
- Path: The file name, for example: eventstream.json
- Payload Type: InlineBase64
- Payload: See Example of payload content decoded from Base64
Eventstream
Describe the topology of Eventstream item.
| Name | Type | Required | Description | 
|---|---|---|---|
| sources | Array | true | Describes the data sources that can be ingested into Eventstream for processing. | 
| destinations | Array | true | Describes the endpoints within Fabric where processed data can be routed to, including Lakehouse, Eventhouse, Reflex, and others. | 
| operators | Array | true | Define the event processors that handle real-time data streams, such as Filter, Aggregate, Group By, and Join. | 
| streams | Array | true | Describes the data streams available for subscription and analysis in the Real-time Hub. There are two types of streams: default streams and derived streams. | 
eventstream.json example
To see how to create a JSON file describing an Eventstream item, see Eventstream REST API.
{
    "sources": [
        {
            "name": "myEventHub",
            "type": "AzureEventHub",
            "properties": {
                "dataConnectionId": "cc8271ee-8f72-473d-969c-6828f5fd0d45",
                "consumerGroupName": "$Default",
                "inputSerialization": {
                    "type": "Json",
                    "properties": {
                        "encoding": "UTF8"
                    }
                }
            }
        }
    ],
    "destinations": [
        {
            "name": "myLakehouse",
            "type": "Lakehouse",
            "properties": {
                "workspaceId": "fdf52f3a-b687-41b8-8ff8-aeeca4d1edd8",
                "itemId": "737d6a97-e88c-45e1-9c39-adf1c9c4e817",
                "schema": "",
                "deltaTable": "newTable",
                "minimumRows": 100000,
                "maximumDurationInSeconds": 120,
                "inputSerialization": {
                    "type": "Json",
                    "properties": {
                        "encoding": "UTF8"
                    }
                }
            },
            "inputNodes": [
                {
                    "name": "derivedStream"
                }
            ]
        }
    ],
    "streams": [
        {
            "name": "myEventstream-stream",
            "type": "DefaultStream",
            "properties": {},
            "inputNodes": [
                {
                    "name": "myEventHub"
                }
            ]
        },
        {
            "name": "derivedStream",
            "type": "DerivedStream",
            "properties": {
                "inputSerialization": {
                    "type": "Json",
                    "properties": {
                        "encoding": "UTF8"
                    }
                }
            },
            "inputNodes": [
                {
                    "name": "GroupBy"
                }
            ]
        }
    ],
    "operators": [
        {
            "name": "GroupBy",
            "type": "GroupBy",
            "inputNodes": [
                {
                    "name": "myEventstream-stream"
                }
            ],
            "properties": {
                "aggregations": [
                    {
                        "aggregateFunction": "Average",
                        "column": {
                            "expressionType": "ColumnReference",
                            "node": null,
                            "columnName": "payload",
                            "columnPathSegments": [
                                {
                                    "field": "ts_ms"
                                }
                            ]
                        },
                        "alias": "AVG_ts_ms"
                    }
                ],
                "groupBy": [],
                "window": {
                    "type": "Tumbling",
                    "properties": {
                        "duration": {
                            "value": 5,
                            "unit": "Minute"
                        },
                        "offset": {
                            "value": 1,
                            "unit": "Minute"
                        }
                    }
                }
            }
        }
    ],
    "compatibilityLevel": "1.0"
}
To construct an Eventstream item for the API payload, you can use the GitHub template to define an Eventstream item.
EventstreamProperties
Describe Eventstream metadata.
| Name | Type | Required | Description | 
|---|---|---|---|
| retentionTimeInDays | Integer | ❌ | Describes the retention days of the Eventstream item. Default value is 1. Allowed value range from 1 to 90. | 
| eventThroughputLevel | Enum | ❌ | Describes the event throughput level of the Eventstream item. Default value is Low. Allowed values are Low,Medium,High. | 
eventstreamProperties.json example
{
  "retentionTimeInDays": 1,
  "eventThroughputLevel": "Low"
}
Platform part
The platform payload is optional. The platform part is a file that contains the Eventstream metadata information.
- Create Item with definition respects the platform file if provided.
- Get Item definition always returns the platform file.
- Update Item definition accepts the platform file if provided, if you set a new URL parameter updateMetadata=true.
Definition example
Here's an example of a Base64-encoded eventstream definition, where the content from Example of payload content decoded from Base64 is encoded in Base64 and placed in the payload field with the path set to eventstream.json :
{
  "displayName": "myEventstream",
  "type": "Eventstream",
  "description": "Create Eventstream item with definition",
  "definition": {
    "parts": [
      {
        "path": "eventstream.json",
        "payload": "<base64 encoded string>",
        "payloadType": "InlineBase64"
      },
      {
        "path": "eventstreamProperties.json",
        "payload": "<base64 encoded string>",
        "payloadType": "InlineBase64"
      },
      {
        "path": ".platform",
        "payload": "ZG90UGxhdGZvcm1CYXNlNjRTdHJpbmc=",
        "payloadType": "InlineBase64"
      }
    ]
  }
}