Run Microsoft Fabric jobs as steps in a bigger flow.

Fabric runs the notebooks, pipelines, and lakehouse. Kestra decides when each job fires, what runs next, and what happens beyond Fabric. Trigger on any event, wait for completion, layer OneLake bronze to gold, and chain with dbt, on-prem databases, and the rest of your stack in one execution history.

Blueprints for Microsoft Fabric orchestration.

Fabric's built-in scheduler fires notebooks and pipelines on a cron inside the Fabric workspace. Kestra runs above it: it triggers RunPipeline, RunNotebook, and RunSparkJob the moment an upstream event lands, waits for terminal status, layers OneLake bronze to gold, and chains Fabric with dbt, Kafka, and on-prem systems that the Fabric scheduler cannot reach. One execution history spans the whole pipeline, inside Fabric and beyond it.

Ingest, transform, and validate across Fabric Open blueprint
Download from OneLake, process, and upload back Open blueprint
Run a Microsoft Fabric notebook and wait Open blueprint

Above the Fabric workspace scheduler.

Fabric runs the notebooks, pipelines, Spark, and OneLake. Kestra runs the steps around them: what triggers each job, what runs next, who is alerted, and where the cross-tool audit trail lives.

Event-driven Fabric jobs, not workspace cron

Fabric's scheduler fires items on a fixed cadence inside the workspace. Kestra triggers io.kestra.plugin.microsoft.fabric.data.engineering.RunPipeline the moment an upstream event lands: a webhook, an Azure Blob arrival, a Kafka message, or a schedule. The Fabric job runs on the event, not on the next workspace tick.

Notebooks, pipelines, and Spark as flow steps

RunNotebook, RunPipeline, and RunSparkJob each submit a Fabric item job and wait for completion by default (polling every 5s). Each becomes one step in a larger Kestra flow, so a notebook can be bracketed by the load before it and the activation after it, with per-step retries.

OneLake medallion, orchestrated

The OneLake tasks (onelake.Upload, Download, Delete) move files in and out of a Lakehouse over the ADLS Gen2 API. Kestra layers raw into bronze, conforms to silver, and aggregates into gold as ordered steps, each retrying independently, with the whole refresh under one execution ID.

Fabric Warehouse queries in the flow

warehouse.Query runs SQL against a Fabric Warehouse over JDBC with service-principal auth, returning rows or writing results to internal storage. A query result can gate the next step, feed a notebook, or branch the flow, so the warehouse is part of the pipeline, not a dead end.

Chain Fabric beyond Microsoft

Fabric orchestrates within the Microsoft estate. Kestra chains a Fabric pipeline with a dbt build, an on-prem database extract, a warehouse load, or a Kafka event in one flow, so Fabric is one step in a pipeline that spans the whole stack, not an island.

Self-hosted control plane, cross-cloud

Kestra runs self-hosted on Docker or Kubernetes, or air-gapped, and is not bound to the Microsoft cloud. It orchestrates Fabric alongside other clouds and on-prem from one control plane, which matters for regulated workloads that cannot be driven from a single vendor's scheduler.

How teams use Microsoft Fabric and Kestra

Patterns cloud data teams run in production today. Each one shows the flow end to end, with the real plugin classes in play.

Event-driven

Trigger a Fabric pipeline on an upstream event

A webhook (or Azure Blob arrival, or Kafka message) fires the flow, Kestra runs RunPipeline and waits for terminal status, then branches on the result. The Fabric pipeline runs when the source is confirmed ready, not on a workspace schedule.

Wait built in

RunPipeline polls the job instance until terminal, failing on Failed or Cancelled.

Fire on the event

The pipeline runs on a webhook, file, or message, not the next cron tick.

Branch on the outcome

An If task routes success and failure to different paths.

webhook
any HTTP signal
fabric pipeline
run + wait
branch
on result
notify
Slack on failure
Notebook

Run a Fabric notebook and chain dbt

Kestra runs a Fabric RunNotebook job, waits for it, then triggers a dbt build on the output and confirms on Slack. The notebook is one step in a chain it could not express inside the workspace alone.

Notebook as a step

RunNotebook submits the item job and waits for completion.

Chain past Fabric

The notebook output feeds dbt, a warehouse load, or an on-prem system.

Retry in isolation

A dbt retry never re-runs the notebook.

schedule
nightly
fabric notebook
run + wait
dbt build
transform output
notify
on complete
Lakehouse

Bronze to silver to gold on OneLake

The medallion pattern on OneLake. Kestra downloads raw files from bronze with onelake.Download, runs a Spark job to conform to silver, then uploads aggregated gold with onelake.Upload. Each hop is a step with its own retry.

Each layer is a step

Bronze, silver, and gold hops each retry independently.

Spark for the heavy hop

RunSparkJob handles the conform-and-aggregate work.

One refresh, one history

The whole medallion run shares one execution ID.

onelake download
bronze raw
spark job
conform to silver
onelake upload
gold aggregate
notify
on complete
Warehouse

Gate a flow on a Fabric Warehouse query

Kestra runs a warehouse.Query against the Fabric Warehouse, branches on the result with an If task, and only proceeds when a freshness or row-count check passes. A failed check halts the flow and pages PagerDuty before downstream runs.

Query gates the flow

A warehouse.Query result decides whether downstream runs.

Service-principal auth

JDBC with Active Directory service principal, no interactive login.

Halt on bad data

A failed check pages the on-call before anything downstream runs.

warehouse query
freshness check
branch
pass or halt
downstream
proceed on pass
pagerduty
page on fail
Ingestion

Land on-prem data in OneLake, then process it

Kestra extracts from an on-prem database, uploads the result to OneLake with onelake.Upload, then runs a Fabric pipeline on it, all in one flow with one execution ID. The pattern brings data Fabric cannot reach natively into the Lakehouse.

Reach what Fabric cannot

On-prem databases and file shares land in OneLake through one flow.

One history end to end

The extract, the OneLake upload, and the Fabric run share one execution ID.

Step retries stay local

A Fabric retry never re-runs the on-prem extract.

on-prem extract
query a database
onelake upload
into Fabric
fabric pipeline
process
notify
on complete

Kestra vs the orchestration alternatives Microsoft Fabric teams evaluate

Capability
Fabric Scheduler
Azure Data Factory
Databricks Workflows
Trigger on webhook, Blob, Kafka, schedule
Native event triggers
Workspace cron onlyEvent Grid wiring requiredJob schedules, file triggers
Chain Fabric with dbt, on-prem, the warehouse
Native plugins, any target
Fabric-centricAzure-centric, limitedDatabricks-centric
OneLake medallion as ordered steps
Download + Spark + Upload
Native, Fabric-onlyDataflows, Azure-boundNative, Databricks-only
Run fully self-hosted, off the cloud
Docker, Kubernetes, air-gapped
SaaS onlyAzure-managed onlyManaged only
Reach beyond the Microsoft estate
Fabric + on-prem + any tool in one flow
Microsoft onlyAzure onlyLimited
Self-service runs for non-engineers
Kestra Apps
Workspace access requiredNo native form layerNo native form layer
Declarative YAML, IaC-friendly
YAML + Terraform provider
GUI-firstJSON pipelines / portalNotebooks + UI

Microsoft Fabric & Kestra: common questions

Find answers to your questions right here, and don't hesitate to Contact Us if you couldn't find what you're looking for.

See How

Ready to orchestrate your Microsoft Fabric jobs?

Trigger notebooks and pipelines on any event, layer OneLake bronze to gold, query the warehouse, and chain Fabric with the rest of your stack. Open source, self-hosted, event-driven.