A Real-Time Intelligence solution must enrich an incoming telemetry stream by joining it against historical device records that already exist as Delta tables in a Microsoft Fabric Lakehouse. The streaming logic requires arbitrary stateful aggregations and a custom Python machine-learning model scored per event. The team needs full control of the processing graph and is comfortable with code. Which engine best fits these requirements?
- AA Spark structured streaming notebook that reads the stream, joins it against the Lakehouse Delta tables, and runs the custom Python model and stateful aggregations in code. Correct
- BAn Eventstream with no-code event processor operations that joins the stream to the Lakehouse tables and applies the Python model inside the processor.
- CA KQL update policy in the Eventhouse that scores the Python model on each ingested row and joins the historical Lakehouse Delta tables at ingestion time.
- DA Dataflows Gen2 refresh that merges the stream with the Lakehouse tables and applies the model through a Power Query custom function on a recurring schedule.
Why A is correct: Stateful streaming with arbitrary aggregations and a custom Python model scored per event needs full code control, which Spark structured streaming provides while reading the historical Delta tables directly from the Lakehouse.
Why B is wrong: Eventstream processors handle simple shaping such as filters and aggregates but cannot host an arbitrary custom Python model or arbitrary stateful logic, so the no-code path cannot satisfy this requirement.
Why C is wrong: Update policies run KQL at ingestion and cannot execute an arbitrary custom Python model, and joining external Lakehouse Delta tables per row at ingestion is not what an update policy is built to do.
Why D is wrong: Dataflows Gen2 is batch oriented and Power Query cannot host an arbitrary Python model with per-event stateful aggregation, so it neither streams nor performs the required custom scoring.