Simulator
The simulator is the fastest way to get data flowing - realistic sample events, no real backend. Use it to build and test a surface or warm query before a real source is ready.
Add one
Drag a Simulator onto the canvas (or ask Azi: "add a simulator for signups") and wire it to a connection. Open the Inspector to configure it.
Configure
| Setting | What it does |
|---|---|
| Name | A label for the simulator |
| Message interval (ms) | Time between messages - default 30000, minimum 15000 |
| Messages per device | Total to send; 0 = keep going |
| Variables | Values your template can reference (e.g. random ranges) |
| Message template | The shape of each event (JSON) |
The template uses simple placeholders, e.g. a random value in a range:
{ "signups": "{{random 0 50}}", "activeUsers": "{{random 100 500}}" }
deviceId and timestamp are added automatically.
Verify
Watch the Live Stream panel (or tail_telemetry from any AI) for incoming events:
{
"deviceId": "ProductData",
"signups": 12,
"activeUsers": 318,
"timestamp": "2026-06-05T10:30:00Z"
}
Then
Route it to a Surface and crystallize a Warm Query. Switch to a real source (API Source or live device) when you're ready - the surface and queries stay the same.