Services Work Blog Get in touch →

Microsoft Fabric is easy to start and easy to start wrong. The platform lets you ship a report in an afternoon, which tempts teams to defer the decisions that are cheap on day one and painful on day ninety. This checklist is ordered the way an engagement actually runs: settle the foundations first, then build, then harden, then hand over. Work top to bottom and the awkward retrofits mostly disappear.

01

Before you start

  • Capacity sizing. Pick an F SKU sized to your smoothed average load, not your peak. Remember broad free-user BI distribution requires F64 or larger — below that, every consumer needs a Power BI Pro licence.
  • Workspace & environment strategy. Decide on workspace-per-environment (Dev / Test / Prod) before you build, not after the first hotfix.
  • Identity for automation. Use a service principal for pipelines and scheduled jobs — never a personal account that breaks when someone changes role.
  • Tenant settings. Confirm the Fabric admin switches you need (workspace creation, SPN access, Git integration) are enabled before kickoff.
  • Source inventory. List every data source, its owner, and read access. External-team source? Plan a OneLake shortcut. Your own domain? Plan to ingest.
02

Architecture decisions

  • Lakehouse vs Warehouse for Gold. Spark/Python team or unstructured data → Lakehouse. T-SQL-first with full DML and multi-table transactions → Warehouse. This is the hardest choice to reverse.
  • Medallion layer ownership. Separate Lakehouses per layer (Bronze/Silver/Gold) for independent access control and clean lineage; a single Lakehouse with folders only for small teams.
  • Direct Lake vs Import vs DirectQuery. Default to Direct Lake for Lakehouse-backed models; Import only where DAX needs it; DirectQuery only for sub-minute freshness.
  • Shortcut vs full copy. Zero-copy shortcut when another team owns the source; full ingestion when you own the data lifecycle.
  • See our deep-dive on the trade-offs: Microsoft Fabric architecture decisions.
03

Data ingestion

  • Right tool per job. Spark notebooks for complex transforms, Dataflow Gen2 for Power Query-style work, Pipelines for orchestration. Don't push Dataflow Gen2 much past ~1 GB.
  • Incremental load. Design incremental patterns where source volume warrants it, rather than full refreshes.
  • Error handling & alerting. Build failure handling and notifications in from the start, not after the first silent pipeline failure.
  • Bronze stays raw. Land data as-ingested in Bronze; do cleaning and conforming on the way to Silver.
04

Modelling & semantic layer

  • Star schema in Gold. Model the Gold layer as clean fact and dimension tables — Direct Lake and DAX both reward it.
  • Certified semantic model. Define metrics once as shared DAX measures so the organisation has one answer per number.
  • Business logic in Gold, not just DAX. Push reusable logic into the data layer where it's tool-agnostic and testable; reserve DAX for presentation-level calcs.
  • RLS placement. If any consumer can reach the data outside Power BI, enforce row-level security at the data layer — model-only RLS is bypassed by Spark and direct SQL.
05

Performance

  • Beat the small-files problem. Run OPTIMIZE to compact tiny Parquet files into large row groups — it's the number-one performance killer for Direct Lake.
  • Keep V-Order on for read-heavy Gold. It buys up to ~50% more compression and faster scans; consider off for append-heavy Bronze.
  • Partition only when it helps. Low-cardinality columns on large tables (rule of thumb < 100–200 distinct values). Over-partitioning recreates the small-files problem.
  • Avoid Direct Lake fallback. Design tables so queries don't silently drop to slower DirectQuery.
06

Governance & security

  • Workspace roles. Assign Admin / Member / Contributor / Viewer deliberately; don't make everyone a Member.
  • Sensitivity labels & Purview. Apply labels and lineage where compliance is in scope.
  • OneLake data-access roles. Use them where direct lake access needs finer control than workspace roles give.
  • CI/CD with Git. Version notebooks, pipelines and semantic models — not Delta data. Remember connection GUIDs need per-environment mapping at deploy time.
07

Go-live & handover

  • UAT against acceptance criteria. Test reports against agreed criteria with a managed issue log, not ad-hoc feedback.
  • Parallel-run validation. If replacing an existing system, reconcile numbers field by field until they match within tolerance.
  • Monitoring in place. Install the Fabric Capacity Metrics app and set capacity notifications to catch throttling before users feel it.
  • Documentation & handover. Technical docs, a user guide, and a handover workshop so the team can operate the platform without you.

Want this run for you end-to-end? Fabric Fast-Track delivers every item on this list in 8 weeks at a fixed price — or start with a 5-day migration audit if you're moving off a legacy stack. Book a scoping call.

Standing up Fabric?

Book a free 30-minute scoping call. We'll tell you honestly which of these decisions matter most for your situation — and whether you need help with them.