People sitting around a desk

adesso Blog

Anyone who runs a modern data platform is familiar with the question that regularly crops up during annual budget discussions: “How much will the solution cost us next year?” In a traditional, tool-centred platform environment, the answer is honest — but unsatisfactory: “It depends.”

It depends on how many teams are growing. It depends on how many pipelines run each day. It depends on whether compute resources are shut down properly or continue to run unnoticed. And whether licences have been purchased for peak load or average load. Both are expensive — just in different ways.

Microsoft Fabric tackles this question with a fundamentally different approach: the capacity model. What this means, where it helps — and where requirements remain — is the subject of this article.

The classic model: licence plus infrastructure plus operations

A conventional data platform consists of individual components. A data warehouse here, an ETL tool there, a BI layer on top, plus cloud computing for transformations and storage for the raw data. Each component has its own pricing model:

  • Licence costs: per user, per core, per node — contractually binding
  • Cloud compute: Pay-as-you-go: every pipeline, every Spark job, every query
  • Cloud storage: Per GB stored + per GB read/written
  • Operations & DevOps: Monitoring, patching, scaling, incident handling
  • Network costs: Data transfer between services, regions, egress

The result is a cost structure with several variable components. Some of these can be planned for, such as licences for a known number of users. Others are far less predictable: How many GB will be transformed next month? How many ad hoc queries will the analyst team run? How much rendering will be required when a new reporting dashboard goes live?

“The traditional model has no natural upper limit. It scales as long as someone continues to launch resources — and the bill follows.”
Two strategies, both with their drawbacks

Companies typically tackle this uncertainty with one of two strategies — or a combination of both.

The first strategy is over-provisioning: resources are procured to cater for the expected peak load. This ensures that no bottlenecks arise — but during normal operations, a significant proportion of the paid-for capacity lies idle. A classic example is a dedicated SQL warehouse designed for the month-end closing, but which runs at half capacity for 27 out of 30 days.

The second strategy is active resource management: you configure auto-scaling, schedule shutdown windows, set budget alerts and train teams to start and stop resources properly. This works, but it requires ongoing effort, such as reliable monitoring across all services and the discipline to stick to it consistently.

  • Over-provisioning
    Safe, but expensive — capacity for the peak that rarely occurs
  • Active management
    Flexible, but labour-intensive — continuous monitoring & control
  • The result
    Both approaches create budget uncertainty and operational overhead

The Fabric Capacity model: a metric that breathes

Microsoft Fabric replaces this patchwork with a single control metric: Fabric Capacity, measured in Capacity Units (CU). One Capacity Unit covers all workloads running within the allocated workspaces — data engineering, data warehousing, real-time analytics, Power BI, data science and more. There are no separate infrastructure costs, no cloud operating expenses, no egress surprises. Platform operation is included in the SaaS price.

The only remaining cost component directly linked to usage is the data stored in OneLake — this is the easiest part to plan for and the most cost-effective compared to compute.

The fundamental difference from the traditional approach: the Capacity model is not designed for peak usage, but for the expected average. What happens if this average is exceeded — e.g. due to a large data load or an intensive analysis session — is governed by the burst and smoothing mechanism.

Burst and smoothing: capacity that incurs and repays ‘debt’

If a workload temporarily consumes more CUs than the capacity size nominally permits, Fabric does not intervene immediately. Instead, the excess is recorded as an internal debt. The platform allows the burst to occur — and offsets it during periods of low utilisation by consuming less capacity than would otherwise be available.

Principle: Burst & Smoothing over time

  • Capacity limit: 100%
  • Peak load – Burst: Debt is incurred
  • Smoothing balances things out
  • Average – basis for planning
  • Idle – debt is reduced

This ‘breathing’ makes the capacity limit the basis for planning the average — not the worst-case scenario. As long as load peaks are temporary and alternate with periods of inactivity, the platform remains stable without the need to scale.

Important: Debt tolerance is not unlimited. When accumulated burst debt reaches a threshold, Fabric responds in stages: initially, new tasks are delayed (throttling); if the threshold is exceeded further, they are rejected (rejection). Monitoring these thresholds is therefore an essential part of capacity management.

Planning based on averages: the same fundamental problem — solved differently

Let’s be honest: the capacity model does not solve the problem of load estimation. Here, too, one must estimate how intensively the platform is used on average. This estimation is particularly difficult at the outset — and remains a challenge in dynamically growing data landscapes. However, the model can be operated ‘on an ad hoc basis’.

The capacity model offers significantly greater responsiveness: if the capacity selected is too small, it can be increased with just a few clicks. If it is consistently oversized, it can be scaled down. There are no contract terms per individual component, no waiting times for cloud resources, and no rounds of negotiation. A capacity slider in the Azure Portal is all the admin needs.

“The Capacity model turns a structural planning problem into an operational control problem — and that is a key difference.”

Workspace structure as a lever: workload management

An often underestimated advantage of the Capacity model lies in the ability to operate multiple capacities and assign workspaces flexibly. This opens up a new dimension of control: workload management at organisational level.

In concrete terms, this means that an organisation can create different capacities for different usage profiles. A large capacity for daily, intensive production. A smaller one for development and testing. A dedicated one for time-critical real-time analyses. When a project ends or a team moves into a new phase, the workspace is simply assigned to a different capacity — without data migration, without new configuration.

  • Production (F64)
    Daily pipelines, reporting, real-time — high utilisation, stable
  • Development (F8)
    Experiments, new features, data products — intermittent
  • Burst reserve (F16)
    Month-end closing, batch runs, seasonal peaks — temporary

This flexibility allows you to concentrate expensive capacity where it is currently needed — and to optimise overall costs across the portfolio, rather than over-provisioning each application individually.

Monitoring remains, but with a dashboard

Even though the capacity model greatly simplifies cost complexity, monitoring cannot and should not be dispensed with. The Fabric Capacity Metrics App is the central tool for this. It shows, almost in real time, how many CUs are being consumed, which workloads are using the most capacity, when burst debt is accumulating, and whether thresholds are being approached.

Monitoring objectives and action strategies in the Capacity model

  • Persistently high utilisation: Capacity upscaling — a one-off step, not a contract
  • Burst debt is accumulating: Check load balancing or reassign the workspace
  • A single workload dominates: Move the workspace to its own capacity
  • Capacity is persistently low: Downsizing — reduce costs without service interruption
  • Approaching thresholds: Use alert configuration for proactive intervention

The key difference from the traditional approach: you no longer monitor many different services with different metrics and dashboards. One dashboard, one family of metrics, one set of action rules. This significantly reduces the cognitive load — and makes alerting more targeted.

Where the model has its limitations: items with fixed resource allocation

The capacity model with burst and smoothing assumes that workloads can be started and stopped as required — in other words, that they support a serverless operating model. This is the case for many Fabric workloads: dataflows, notebooks, pipeline runs and Power BI queries run on-demand and release resources when they are finished.

However, some Fabric items operate differently. They require infrastructure that runs continuously — and therefore reserve a fixed proportion of CUs within the allocated capacity:

Item/Service – Reason for fixed CU reservation

  • Event streams: Continuous stream processing; no pauses possible
  • Spark clusters (always-on): Warm clusters for minimal latency when jobs start
  • SQL databases (Fabric DB): Persistent query engine must respond at all times
  • Real-time dashboards (KQL): Low query latency requires available compute

The following applies to these items: When designing capacity, you must factor in how many CUs they permanently occupy — and allocate the remaining ‘free’ portion to dynamic, serverless workloads. If capacity is set too low here, it can result in limited scope for burst tolerance.

Recommendation: Explicitly track items with fixed CU reservations in the Capacity Metrics app. The ‘background’ consumption of these items is predictable — and forms the baseline against which all dynamic workloads are added.

A direct comparison at a glance

  • Dimension: Cost basis
    Traditional model: Licence + infrastructure + operations
    Fabric Capacity: One capacity unit (CU)
  • Dimension: Scaling logic
    Traditional model: Designed for peak load — or manually controlled
    Fabric Capacity: Designed for average load, with peaks handled via burst
  • Dimension: Peak loads
    Traditional model: Immediate costs or manual throttling required
    Fabric Capacity: Burst + Smoothing: Debits are internally offset
  • Dimension: Responsiveness
    Traditional model: Procure new contracts / resources
    Fabric Capacity: Scale capacity up or down in just a few clicks
  • Dimension: Workload control
    Traditional model: Configurable individually per tool
    Fabric Capacity: Workspace-based capacity management
  • Dimension: Predictability – Budget
    Traditional model: Uncertainty due to variable proportions
    Fabric Capacity: Fixed budget, predictable monthly costs
  • Dimension: Monitoring
    Traditional model: Multiple tools, different metrics
    Fabric Capacity: Fabric Capacity Metrics App — a dashboard
  • Dimension: Fixed resources
    Traditional model: Dedicated tier sizes per service
    Fabric Capacity: Item-specific CU reservation possible

Conclusion: A different way of thinking, not just a different pricing model

Microsoft Fabric’s Capacity model is not merely a change of licensing. It changes the way we think about the costs of a data platform. Instead of procuring, monitoring and optimising resources for each service individually, you work with a single budget lever — the Capacity size — and a clear mechanism for load dynamics: burst and smoothing.

This does not mean that all questions disappear. Estimating the average load remains a challenge. Monitoring and alert handling are still necessary. And for items with ongoing resource requirements, reservations must be planned carefully.

What does change fundamentally, however, is that options for action become faster, cost transparency increases and organisational control becomes more flexible. Capacity can be adjusted on a daily basis. Workspaces can be reallocated. And budget discussions finally yield an honest, predictable answer.

Fabric Capacity transforms a complex web of costs into a single, manageable figure. This does not create perfect predictability — but it does provide a fair basis for rational decisions.
Picture Stefan  Rahlf

Author Stefan Rahlf

Stefan Rahlf is a Managing Consultant for Data & Analytics with over 20 years’ experience in designing and implementing analytical data solutions for clients across a range of industries. His focus is on technologies and data platforms within the Microsoft ecosystem – from traditional on-premises architectures through to Azure and modern solutions such as Microsoft Fabric, with which he has been working for several years.

He provides comprehensive support to companies in the implementation of data-driven initiatives – from technical architecture through the selection and implementation of suitable platforms to integration into existing data management and governance structures. In doing so, he combines in-depth technical expertise with a strong understanding of organisational requirements to establish sustainable and scalable data solutions.

Category:

Methodology

Tags:

Microsoft

Fabric



Our blog posts at a glance

Our tech blog invites you to dive deep into the exciting dimensions of technology. Here we offer you insights not only into our vision and expertise, but also into the latest trends, developments and ideas shaping the tech world.

Our blog is your platform for inspiring stories, informative articles and practical insights. Whether you are a tech lover, an entrepreneur looking for innovative solutions or just curious - we have something for everyone.

To the blog posts