RepoMicrosoftMicrosoftpublished May 28, 2026seen 5d

microsoft/event-data-simulator

Python

Open original ↗

Captured source

source ↗
published May 28, 2026seen 5dcaptured 13hhttp 200method plain

microsoft/event-data-simulator

Description: Simply stream your own event data to Fabric RTI Eventstreams or Azure Event Hubs.

Language: Python

License: MIT

Stars: 1

Forks: 0

Open issues: 0

Created: 2026-05-28T10:37:41Z

Pushed: 2026-06-04T08:38:36Z

Default branch: main

Fork: no

Archived: no

README:

Event Data Simulator

> Install in one command. Stream in seconds.

Stream JSON events to Microsoft Fabric Real-Time Intelligence (RTI) Eventstreams and Azure Event Hubs — designed for Solution Engineers building custom demos.

pip install git+https://github.com/microsoft/event-data-simulator.git
rti-simulator

That's it. The guided wizard walks you through connecting and sending your first events.

---

Installation

Option 1: pip install (recommended)

pip install git+https://github.com/microsoft/event-data-simulator.git

This installs the rti-simulator command globally. You're ready to go.

Option 2: Docker (zero Python needed)

# Launch the guided wizard
docker run -it --rm ghcr.io/microsoft/event-data-simulator

# Stream a local file
docker run -it --rm \
-v ./my-data:/data \
--env-file .env \
ghcr.io/microsoft/event-data-simulator /data/events.json --eps 10 --loop

Option 3: Clone for development

git clone https://github.com/microsoft/event-data-simulator.git
cd event-data-simulator
pip install -r requirements.txt
python -m simulator # run via module

---

Getting Started

1. Run the wizard

rti-simulator

Run with no arguments to launch the guided setup wizard. It walks you through: 1. Pasting your Eventstream connection string 2. Picking a sample dataset (finance, healthcare, retail, and more) 3. Sending a test stream to verify everything works

2. Or jump straight in

Set up your connection — create a .env file in your working directory:

EVENT_HUB_CONNECTION_STRING=Endpoint=sb://your-namespace.servicebus.windows.net/;SharedAccessKeyName=...;SharedAccessKey=...;EntityPath=...

> Get this from: Fabric → Eventstream → Custom Endpoint → Details → Event Hub tab → SAS Key Authentication → Connection string–primary key

Stream events:

rti-simulator finance.json
rti-simulator healthcare.json --eps 10 --loop
rti-simulator retail_commerce.json --duration 5m --timestamp-field timestamp
rti-simulator --config config.yaml

Sample Datasets

The following industry-specific datasets are included for building RTI demos:

| File | Industry | Description | |------|----------|-------------| | finance.json | 💳 Finance | Credit card fraud detection events with risk scoring | | healthcare.json | 🏥 Healthcare | Patient vital signs monitoring from hospital wards | | retail_commerce.json | 🛒 Retail & Commerce | Point-of-sale transactions across store locations | | media_comms.json | 📡 Media & Comms | Network interface traffic and throughput telemetry | | travel_transport.json | 🚆 Travel & Transport | Live train departure and arrival events | | local_gov.json | 🏛️ Local Government | Environmental sensor readings across council districts |

JSON File Formats

The simulator auto-detects two formats:

JSON Array — a single array of objects:

[
{"id": 1, "value": 42.5, "timestamp": "2025-01-15T10:00:00Z"},
{"id": 2, "value": 38.1, "timestamp": "2025-01-15T10:00:01Z"}
]

NDJSON (Newline-Delimited JSON) — one object per line:

{"id": 1, "value": 42.5, "timestamp": "2025-01-15T10:00:00Z"}
{"id": 2, "value": 38.1, "timestamp": "2025-01-15T10:00:01Z"}

Each JSON object becomes a separate event streamed to the Eventstream. Events are sent with content_type: application/json so downstream consumers (KQL, Eventstream processors, etc.) can auto-parse them.

Configuration File

Instead of passing CLI flags every time, save your settings in a YAML file:

cp config.example.yaml config.yaml
# Edit config.yaml with your settings, then:
rti-simulator --config config.yaml

Example `config.yaml`:

file: finance.json
connection_string: "Endpoint=sb://..."
eps: 10
jitter: 20
loop: true
duration: 5m
timestamp_field: timestamp

All CLI flags have a corresponding YAML key. CLI flags override config file values, so you can set defaults in the config and override one-off changes on the command line:

# Uses config.yaml settings but overrides EPS to 50
rti-simulator --config config.yaml --eps 50

Configuration priority: CLI flags > config file > .env file > defaults

| YAML Key | CLI Flag | Description | |----------|----------|-------------| | file | (positional) | Path to JSON data file (relative to config file) | | connection_string | --connection-string | Event Hub / Eventstream connection string | | eventhub_name | --eventhub-name | Event Hub name | | eps | --eps | Events per second | | interval | --interval | Seconds between events | | burst | --burst | Send with no rate limit | | jitter | --jitter | Random ±% timing variation | | loop | --loop | Replay file continuously | | repeat | --repeat | Number of passes | | duration | --duration | Maximum run time | | timestamp_field | --timestamp-field | JSON field to overwrite with current timestamp | | timestamp_format | --timestamp-format | strftime format for injected timestamp | | dry_run | --dry-run | Validate without sending | | preview | --preview | Show first N events | | quiet | --quiet | Suppress output | | verbose | --verbose | Show event payloads | | no_progress | --no-progress | Hide progress bar | | batch_size | --batch-size | Max events per batch |

CLI Reference

rti-simulator [FILE] [OPTIONS]

Run with no arguments to launch the guided setup wizard.

Config File

| Flag | Description | |------|-------------| | --config | Path to a YAML configuration file. CLI flags override config values. |

Connection Options

| Flag | Short | Description | |------|-------|-------------| | --connection-string | -c | Event Hub / Eventstream connection string. Overrides config file and .env. | | --eventhub-name | -n | Event Hub name (only if connection string lacks EntityPath). |

Rate Control

These are mutually exclusive — pick one:

| Flag | Short | Default | Description | |------|-------|---------|-------------| | --eps | -e | 1.0 | Events per second. Decimals OK (0.5 = 1 event every 2s). | |…

Excerpt shown — open the source for the full document.

Notability

notability 2.0/10

Low traction repo from MS