The production engineering manual for Microsoft Fabric

Microsoft docs tell you what.
fabdocs.dev tells you how.

Build, deploy, govern, and scale lakehouses, notebooks, and CI/CD pipelines in production — without torching your capacity budget.

34+
production guides
6
engineering domains
5
starter kits, $49 each or with Pro
silver_orders.Notebook.py

# Idempotent by default — re-running is always safe
from delta.tables import DeltaTable

(
    DeltaTable.forName(spark, "silver.orders")
        .alias("t")
        .merge(incoming.alias("s"), "t.order_id = s.order_id")
        .whenMatchedUpdateAll(condition="s.updated_at > t.updated_at")
        .whenNotMatchedInsertAll()
        .execute()
)

# CU impact: fewer, larger files — cheaper on every downstream read
spark.sql("OPTIMIZE silver.orders")
Topics covered in the docs
AUDIT LOG, CAPACITY (F SKU), CAPACITY UNIT (CU), DEPLOYMENT PIPELINE, DIRECT LAKE, GIT INTEGRATION, LAKEHOUSE, MIRRORING, NATIVE EXECUTION ENGINE (NEE), NOTEBOOKUTILS, ONELAKE, ONELAKE SECURITY, OPTIMIZE / COMPACTION, RESOURCE PROFILE, RUNTIME (FABRIC RUNTIME), SHORTCUT, V-ORDER, VACUUM, VARIABLE LIBRARY, WAREHOUSE, WORKSPACE IDENTITY
For data engineers

Taming lakehouses, Spark jobs, and Delta table sprawl.

For enterprise architects

Designing OneLake topology, security, and CI/CD that scales.

For analytics leads

Making Capacity Unit burn predictable and defensible.

Beyond the docs

An AI that cites its sources, and packs that ship as code

The assistant is free in small doses; the packs are Pro-only. $5/mo unlocks both.

Ask AI, on every page and every code block

Grounded in the docs — it searches fabdocs.dev before answering and cites the pages it used, instead of guessing. Click the sparkle on any snippet to get it explained inline.

5 free questions/day200/day with Pro
5 production-ready packs, $49 each or with Pro

Real, runnable artifacts — not templates you rewrite from scratch: GitHub Actions workflows, tested PySpark notebooks, a OneLake security model, migration toolkits, monitoring.

Patterns, not screenshots

Every notebook is a function: inputs from parameters, deterministic output, safe to re-run. Every page states what a technique costs in Capacity Units before it tells you how to do it.

  • Idempotent MERGE and replaceWhere — never blind appends
  • Native Execution Engine tuning to cut CU per run
  • Deployment pipelines + variable libraries, no manual publish
Production PySpark patterns
resource_profile.py

# Match the profile to the workload shape —
# one setting flips ~20 Spark configs at once
spark.conf.set(
    "spark.fabric.resourceProfile",
    "readHeavyForSpark",
)

if job.is_streaming_sink:
    profile = "writeHeavy"
elif job.feeds_direct_lake:
    profile = "readHeavyForPBI"

The Fabric change briefing

A tight technical digest of what changed in Microsoft Fabric — new runtimes, API updates, breaking changes — and what to do about it.

Fabric runtime changes, API updates, and deprecations. No spam, unsubscribe anytime.

Start with the slice that hurts most

Runaway CU bills, a lakehouse full of small files, or a deployment process that lives in someone’s head.