Copyright (c) 2026 MindMesh Academy. All rights reserved. This content is proprietary and may not be reproduced or distributed without permission.

3.4.1. Real-Time Intelligence Architecture

💡 First Principle: Real-Time Intelligence in Fabric provides purpose-built components for streaming analytics. Unlike batch processing, streaming requires handling continuous, unbounded data with minimal latency.

Scenario: An e-commerce platform needs to detect fraud within milliseconds, display real-time inventory, and analyze clickstream patterns. Each requires different latency and processing models.

Real-Time Intelligence Components

ComponentPurposeKey Feature
EventstreamIngest and route eventsNo-code event processing
KQL DatabaseStore time-series dataOptimized for streaming queries
EventhouseContainer for one or more KQL databasesDatabases share its compute and storage capacity, with unified monitoring
Real-Time DashboardVisualize streaming dataAuto-refresh capabilities
Real-Time HubMonitor event flowCentralized event catalog
ActivatorWatch event data for conditions and act; rules come from an eventstream destination or Set alert on a stream in the Real-Time hubEmail/Teams alerts, run a pipeline or notebook, Power Automate
Visual: Real-Time Intelligence Architecture

Choosing Storage in Real-Time Intelligence: Native vs. Mirrored vs. Shortcuts

This is a critical exam decision point. Real-Time Intelligence supports three storage approaches for data in KQL databases:

Storage ApproachWhat It MeansData LocationLatencyCost
Native ingestionData ingested directly into EventhouseEventhouse (local)LowestHighest (full storage)
Mirrored storageOneLake data mirrored into KQL databaseEventhouse (replicated)LowMedium (replicated copy)
ShortcutsReference external data without copyingExternal sourceVariableLowest (no copy)
Decision Framework:
If You Need...Use ThisWhy
Sub-second KQL queries on streaming dataNative ingestionData is local, fully indexed
KQL queries on existing OneLake dataMirrored storageAvoids separate ingestion pipeline
Occasional queries on external dataNon-accelerated shortcutNo storage cost, always current
Frequent queries on external dataAccelerated shortcutCached locally for faster queries
Real-time dashboards with low latencyNative ingestionFastest path from event to query
Historical analysis of lakehouse data via KQLShortcut or mirroredReuses existing data

⚠️ Exam Trap: "Mirrored storage" in RTI is different from database mirroring (section 3.2.4). RTI mirroring makes OneLake data available to KQL queries; database mirroring replicates external databases into Fabric. Don't confuse the two.

Real-Time hub vs. Eventstream: the Real-Time hub is the tenant-wide catalog where you discover and connect to data streams and Fabric events; an Eventstream is the item that actually ingests, transforms, and routes events. You can create an eventstream directly in a workspace without starting from the hub.

OneLake availability: when streaming data already lands in an Eventhouse, turn on OneLake availability (database or table level) to expose a logical copy of the KQL data in Delta Lake format. Notebooks, lakehouses (through a shortcut), warehouses, and Direct Lake can then read it with no second ingestion path or export job, and the storage isn't charged twice.

Hot and cold history: an Eventhouse on its own serves both live and historical KQL queries: the hot cache answers recent-data queries in under a second, and older data ages into cheaper cold storage automatically (see 4.3.5). When the history must also feed Spark or ML, or be kept cheaply for years, route the same eventstream to a lakehouse Delta table as well (one stream, two consumers) instead of building a second pipeline. Don't size the hot cache to hold all history; that pays hot-cache prices for data you rarely query.

Real-Time Dashboards: every tile runs a KQL query against a data source such as an Eventhouse KQL database. Build order: a KQL table is receiving data → create the dashboard and add that database as a data source → add tiles with KQL queries → choose visuals, set auto-refresh, and save. The author sets a default refresh interval and a minimum interval that viewers can't go below.

Power BI over a KQL database: DirectQuery sends KQL queries when the report is viewed, at least one per visual, so a page with 8 visuals runs at least 8 queries. Import mode caches results at the last semantic-model refresh, so any report served from an Import model shows data as of that refresh, not live data.

See how it connects
Alvin Varughese
Written byAlvin Varughese
Founder•20 professional certifications