Summary
Materialize and Microsoft Fabric IQ both help applications and AI agents work in terms of business objects rather than raw tables. The difference is the mechanism by which those objects are updated. Fabric IQ provides a governed semantic and ontology layer over data brought into or made available through Microsoft Fabric. It treats an entity's static attributes separately from its time-series properties: static attributes reach its ontology instance graph from data bound in OneLake, Fabric's storage layer, and are refreshed manually or on a schedule. Materialize uses SQL to define business objects and their relationships and incrementally maintains this context, or derived state, as source changes are ingested.
For analytics, a shared vocabulary, and Microsoft Copilot experiences, Fabric IQ offers a deeply integrated modeling experience. Fabric also has live paths through Eventhouse, its real-time analytics store, and through time-series bindings, with operations agents that act on them. Materialize is differentiated when the context an agent or API needs is derived across operational systems and must stay current continuously. SQL defines the transformation from raw data to refined context, and Materialize incrementally maintains it as the underlying data changes.
What Fabric IQ is
Fabric IQ provides a governed business vocabulary intended to ground agents and experiences across the Microsoft ecosystem. Microsoft Learn states that Fabric IQ "provides context on the state of your business" and is grounded in analytical, real-time, and operational data. Operations agents monitor live data, evaluate rules every five minutes, and can execute approved actions. Each receives a dedicated Microsoft Entra agent identity for governance and attribution, while operating with the delegated permissions of its creator.
A binding connects an entity type, Fabric IQ's unit of modeling, to the Fabric data that populates it. Bindings require that data to be in Fabric: static data in OneLake, time series in OneLake or an Eventhouse. Learn is explicit that ontology "only supports managed lakehouse tables … not external tables that show in the lakehouse but reside in a different location."
Each entity type supports exactly one static data binding. Learn states plainly that "you can't combine static data from multiple sources for a single entity type," though multiple time series bindings are supported, including from both Eventhouse and lakehouse sources.
Freshness in practice
How Fabric IQ keeps static entity state current
Microsoft's documentation states that schema changes propagate automatically; changes to the underlying bound data do not:
If there are changes to the external data source that feeds your graph (for example, if new records are added, updated, or deleted in the upstream system), the graph doesn't know about these changes unless you explicitly inform it. In this case, your graph might display stale data until a new ingestion is triggered.
Microsoft Learn, View Entity Type Details: Refresh the graph model.
We recommend batching updates for refresh instead of refreshing the graph after every individual change, as the graph does a full refresh each time. This approach has cost implications for the Graph in Microsoft Fabric item.
Microsoft Learn, View Entity Type Details: Refresh the graph model.
Refresh can be triggered manually or put on a recurring schedule. Either way the ontology instance graph is a periodically rebuilt representation of bound static entity state, and Microsoft advises batching changes because each rebuild is complete rather than incremental. Time-series properties backed by an Eventhouse are a separate, live path.
How Materialize maintains business objects
A live context layer is the set of business objects an application or agent reads from, kept current as the underlying data changes. In Materialize those business objects are defined in SQL. When they are maintained through indexes or materialized views, Materialize incrementally updates their results as new data is ingested rather than rebuilding them from scratch. There is no user-configured refresh cycle.
Why refreshing more often is not the answer
Refresh frequency is a cost dial. Refreshing more often reduces the maximum staleness window, but it does not eliminate the refresh boundary. Microsoft recommends batching updates because the graph does a full refresh each time and those refreshes have capacity-cost implications. Incremental maintenance takes a different approach: it processes changes to inputs rather than repeatedly rebuilding the full result.
Consistency in practice
For operational applications, values combined in a query often need to represent one consistent point in time. Materialize evaluates a query spanning multiple maintained objects against a consistent logical timestamp. Its default Strict Serializable isolation additionally provides serializability and linearizability for transactions within Materialize; upstream ingestion has separate freshness semantics.
Composability in practice
For static entity state, each Fabric IQ entity type supports one static data binding. If a Customer, Order, or Shipment needs static attributes from multiple operational systems, those inputs must first be combined into a single supported source before the entity type can bind to them. Materialize can express that cross-system derivation directly in SQL and maintain it incrementally as inputs change.
Deployment options
Fabric can reference external and on-premises data through OneLake shortcuts without copying it, including network-restricted sources through the on-premises data gateway. However, ontology's static data bindings currently require managed lakehouse tables and do not support external tables that remain at another location. Depending on the source and the binding required, customers may therefore need to materialize or mirror data into a supported Fabric table before it can populate the ontology instance graph.
The difference is where the computation runs, not where every byte is stored. Fabric is delivered as software as a service, and its compute plane is a Microsoft-operated service. There is no self-managed deployment of it.
Materialize can be deployed as a service, and also has a Self-Managed option that runs in the customer's own Kubernetes, in their cloud account or their data center, inside their network boundary, running the same engine as the managed service. For organizations that require the live context computation itself to remain in their environment, not merely the storage of the source data, that is a fundamental deployment difference, and it is often decisive for regulated or latency-bound operations.
Authoring and graph experience
Fabric IQ is authored in a portal. A business analyst can model entity types visually, bind them to sources, explore the ontology instance graph, run built-in graph algorithms, and ask questions in natural language without writing SQL. It connects directly to the Copilot experiences that platform provides. Materialize's live context layer is typically authored as versioned SQL by software and data engineering teams, and maintained like the rest of a code base.
Graph and recursive computation
Graph in Microsoft Fabric, a separate item from the ontology instance graph, is a property-graph engine with labeled nodes and edges, the GQL graph query language, visual exploration, built-in algorithms, and APIs.
Materialize expresses relational and recursive computations in SQL and maintains those results incrementally as operational data changes.
Agents and the state underneath them
An operations agent pointed at an Eventhouse reads live telemetry directly, and an ontology with Eventhouse-backed time-series properties is also a live path. But when the context an agent needs is a cross-system derived entity, its static attributes must first be combined into one supported source. Fabric IQ then binds the entity type to that source, and changes to the bound data reach the ontology instance graph through full graph refreshes rather than continuous incremental maintenance. Materialize can define the cross-system derivation itself in SQL and incrementally maintain it as inputs change.
For applications and agents that require up-to-the-second context, a scheduled refresh creates a period in which the derived object may no longer reflect upstream state. For a derived object assembled across systems, the graph-refresh interval determines how long the ontology can remain behind changes to its bound static data.
When not to introduce Materialize
Where the requirement is a shared vocabulary for reporting and Copilot grounding, and the data it describes belongs in OneLake on its own merits, Fabric IQ is a reasonable answer. The refresh model examined above is, for that workload, a sensible cost control rather than a limitation. The same holds where the signal is single-source telemetry, nothing downstream needs it combined with data from other systems, and action can wait for a rule interval: an operations agent over an Eventhouse is a reasonable fit.
Where a team has no engineering capacity to own a live context layer as code, and needs analysts to model in a browser, Fabric IQ fits that operating model better than Materialize does.
Two layers, two different objectives
Fabric IQ is built to establish one governed vocabulary across a Microsoft estate and to ground analytical, real-time and Copilot experiences in it. Materialize is a platform for engineering, data, and AI teams built to continuously maintain cross-system operational state so that applications, automation, and acting agents operate on a consistent and current representation of it.
Choose Materialize when context assembled across systems must be current and correct. This is particularly important for "interactive" agents that work in loops or team with humans.