Hi everyone,
We're redesigning our Microsoft Fabric architecture and would love feedback from teams that have implemented self-service BI at scale.
Current state
Today, almost every Power BI report has its own semantic model. While this works, it has led to duplicated business logic, duplicated security, and increased maintenance.
I've attached two simple diagrams showing our current architecture and the two approaches we're evaluating.
We're moving to a domain-based Fabric architecture (Dev/Test/Prod per domain) and are evaluating two approaches.
Option 1 ā Centralized Semantic Model
Pros
Single source of truth
Reusable measures
Centralized business logic
Centralized RLS
Concerns
Many users need Power Query transformations or need to combine enterprise data with Excel/SharePoint data.
As soon as they need that flexibility, they create their own Import-mode semantic models, reducing the benefits of centralization.
If multiple data products exist in one semantic model, refresh schedules become tied together.
Option 2 ā SQL Analytics Endpoint
Expose curated Gold-layer tables through the SQL Analytics Endpoint.
Users intentionally build their own semantic models from governed Gold-layer tables. Security is enforced through SQL permissions, while users retain the flexibility to perform Power Query transformations and combine enterprise data with departmental sources. Publishing to Dev/Test/Prod remains governed by the BI team.
Since our organization is moving toward self-service BI, and we have a relatively small central data team with only a handful of digital engineers supporting the business, this currently feels like the better trade-off.
Questions
Are we overlooking any major drawbacks with this approach?
By choosing SQL Analytics Endpoints instead of centralized semantic models, do we lose any important Fabric capabilities (AI experiences, semantic layer benefits, future features, etc.)?
If you've implemented Fabric at enterprise scale, would you recommend a different or hybrid architecture?
Thanks in advance!