The Landing Lakehouse: The Fabric Pattern Between Arrival and Use

A source begins mirroring into Microsoft Fabric on Friday. By Monday, the tables are visible in OneLake. Production engineers can build from them. Developers can query them. Testers can point validation jobs at them. Analysts can begin exploring.

The delivery looks successful because the data arrived quickly. The architecture may already be in trouble.

The first reachable version of data is rarely the version every user and environment should consume. Production needs fidelity and controlled change. Development needs realistic relationships without unnecessary exposure. Test needs stable inputs that do not shift underneath automated validation. The source team needs to retain authority over what lands and what may be published. Governance needs a defensible answer to a deceptively simple question: which version of this data is visible to whom?

A Landing Lakehouse provides that answer.

The pattern uses a dedicated Lakehouse as the controlled boundary between direct arrival and governed use. Mirrored data, external shortcuts, and source-owned Fabric data can land once. The Landing Lakehouse then exposes distinct schemas for production, anonymized development, representative subsets, Known Copies, and curated validation. Each output is a separate surface with its own purpose, access model, refresh behavior, and owner.

The point is not to add another layer for its own sake. The point is to keep the convenience of Fabric from collapsing several different contracts into one raw surface.

Continue reading “The Landing Lakehouse: The Fabric Pattern Between Arrival and Use”

Microsoft Fabric Databases and AI Move Closer to Everyday Operations

A dashboard can tell a business exactly what is wrong while leaving most of the work of fixing it untouched. A collections manager sees overdue balances, then opens email to investigate a dispute, finds the relevant contract, and asks someone else to update the account. The analytical system has produced a useful answer. The operational process still depends on people carrying that answer between systems.

Microsoft’s Fabric, database, and AI announcements since the beginning of September are increasingly aimed at that gap. Fabric is acquiring more of the capabilities needed to describe a business, recognize a change, and support the work that follows. SQL databases are becoming more capable AI application backends. Foundry is adding the execution services that let agents participate in recurring processes. The Barcelona FabCon and SQLCon releases make this direction particularly visible, with the early October Decision-1 announcement adding a specialized model for the smaller judgments inside those processes.

I see this as a substantial expansion of Fabric’s purpose. Microsoft is positioning it as a shared foundation for running data-intensive business operations, extending well beyond reporting and analytical storage. The strongest part of the strategy is its use of assets organizations already own: operational databases, Power BI measures, business relationships, and established permissions. That gives the recent announcements a coherence that is easy to miss when they are read as separate feature lists.

Continue reading “Microsoft Fabric Databases and AI Move Closer to Everyday Operations”

Choose the Publication Contract, Not the Fabric Icon

A bank’s credit-risk reporting team needs one change before the monthly committee pack. The underlying exposure data is current. The semantic model can reach it. The requested change—reclassifying a set of delinquency bands—is not particularly difficult.

Yet the team that owns the report cannot publish the change. The curated table is maintained by a Spark process owned elsewhere, so the request becomes a ticket, a handoff, and a negotiation over another team’s release calendar. Nothing in Microsoft Fabric is broken. The architecture treated the point where data was published as a storage destination when it was really a contract with an owner.

The reverse failure is just as common. A data-engineering team already publishes well-governed Delta tables for analytics, data science, and downstream domains, but an architectural standard requires every Gold table to be copied into a Warehouse before Power BI can use it. The second published copy adds another load, another security boundary, another incident path, and another opportunity for the two versions to disagree. It exists because a diagram said Gold should look like a database.

Fabric Warehouse and Lakehouse overlap too much for the old rule—structured data goes to a warehouse; everything else goes to a lakehouse—to make this decision well. Both use Delta in OneLake. Both can serve SQL queries. Both can support Power BI and governed analytical products. The consequential difference is the publication contract each item is being asked to own and the team expected to keep it.

Choose a Lakehouse publication contract when the authoritative product is maintained as Delta through engineering workflows and SQL consumers primarily need to read it. Choose a Warehouse publication contract when the owning team must create, populate, correct, secure, and release a relational product through T-SQL, especially when multi-table transactions or an independent SQL-owned release cadence matter. Use both when two real contracts exist—not because one Fabric icon feels unfinished without the other.

Continue reading “Choose the Publication Contract, Not the Fabric Icon”

Stop Publishing the Workshop: An Ingest–Transform–Surface Architecture for Microsoft Fabric

Most Microsoft Fabric architecture diagrams are too polite.

They show data arriving, becoming cleaner, and eventually appearing in a report. What they usually leave out is the argument that determines whether the platform remains understandable after the third development team, the tenth source system, and the fiftieth downstream consumer: where does source reality end, where does product construction happen, and where does the enterprise make a promise?

When those boundaries are unclear, every table is treated as equally public. Analysts connect to whichever object is easiest to find, engineers preserve internal tables because somebody may be using them, and source-facing objects begin to look like product interfaces. The platform may still run, but the architecture has stopped communicating intent.

This article proposes a deliberately simple alternative for a schema-enabled Fabric Lakehouse:

  • Every ingestion method lands data in, or exposes it through, ingest.*.
  • Materialized Lake Views (MLVs) and notebooks move data into transform.*.
  • MLVs publish stable, consumption-ready tables into surface.*.
  • Consumers connect to the product through governed interfaces built on surface.*, not through the internal construction layers.

Here, ingest.* is shorthand for every table in the ingest schema. The same applies to transform.* and surface.*; the asterisk is architectural notation, not part of the schema name.

The result is not another three-color diagram. It is a practical way to separate source capture, internal implementation, and the published contract of a data product.

Continue reading “Stop Publishing the Workshop: An Ingest–Transform–Surface Architecture for Microsoft Fabric”

Stop Thinking in Rows: Databases Make More Sense as Sets

A database table looks like a spreadsheet. That resemblance is useful—and damaging. It makes tables approachable, but encourages a procedural picture: start at the top, inspect a row, make a decision, and move on. That is usually the wrong mental model.

Rows still matter. They have keys, carry facts, and occasionally ruin your afternoon. But the more useful unit of thought is the set: the population of tuples that should exist at a particular stage of processing.

With that shift, SQL operators construct populations. This post develops that mental model, then recasts the EduDataSci freeze-and-squash pattern for a Fabric MLV change feed as small set operations.

The tuple is the unit of assertion; the set is the unit of thought

Suppose a lender receives a monthly snapshot of every commercial loan. “One row per loan per month” states the grain of loan_snapshot, but not its meaning. A better description is:

loan_snapshot is the set of loan-state observations supplied by the servicing system, keyed by loan and snapshot date.

Each tuple asserts a loan’s balance, servicing status, risk grade, and other attributes at a time. “Find the delinquent loans” now defines a subset rather than a row-by-row flagging process. “Find loans missing from the new complete snapshot” defines the difference between two key sets. The database decides how to produce those populations; our first job is to define them correctly.

Continue reading “Stop Thinking in Rows: Databases Make More Sense as Sets”

The Pipeline You Don’t Have to Build

There is a peculiar habit in data engineering: we measure sophistication by the machinery we build. A source drops CSV files into storage, so we create a pipeline. The pipeline needs a schedule, parameters, schema handling, retries, logging, alerts, deployment rules, credentials, and somebody willing to answer for it at 2:00 a.m. None of that is especially difficult. That is precisely the problem. Enterprises spend an astonishing amount of engineering time repeatedly solving work that is too ordinary to deserve bespoke engineering.

Microsoft Fabric Shortcut Transformations attack that problem at the right level. They convert supported files referenced through a OneLake shortcut into a managed Delta table, keep the table synchronized with the source, and expose the result to SQL, Spark, Power BI, and other Fabric consumers. CSV, Parquet, and JSON transformations are generally available. Excel support is in preview. A separate public-preview capability applies built-in language processing to text files for summarization, translation, sentiment analysis, personally identifiable information detection, and named-entity recognition.

That feature list is useful. The architectural consequence is more important.

Shortcut Transformations move routine ingestion from something every project must build into something the platform simply does.

That is the difference between accelerating a pipeline and deleting the need for one.

Continue reading “The Pipeline You Don’t Have to Build”

Fabric Runtime 2.0 Changes the Fabric Engineering Baseline

A Fabric notebook can contain six lines of PySpark and still depend on an enormous amount of technology that is not visible in those six lines. The result depends on the version of Spark that planned the work, the Python or Scala runtime that interpreted the code, the Delta implementation that read and wrote the tables, the Java virtual machine underneath Spark, the operating system beneath that, and the Fabric services that connected the workload to OneLake and compute.

That hidden stack is easy to ignore while it remains stable. Fabric Runtime 2.0 is the moment when ignoring it becomes dangerous.

Runtime 2.0 is now the latest generally available Fabric Spark runtime. It moves the platform to Apache Spark 4.1, Delta Lake 4.2, Python 3.13, Java 21, Scala 2.13, R 4.5.2, and Azure Linux 3.0. Microsoft currently requires customers to opt into it, but plans to make it the default selection for new workspaces and Environment items in late September 2026.

Those facts make Runtime 2.0 sound like a substantial but conventional platform upgrade. It is more important than that. Runtime 2.0 brings together a new Spark generation, a newer Delta protocol, native execution, lower-latency streaming, modern language runtimes, stronger environment management, and a clearer lifecycle for Fabric applications.

The significance is not that every Fabric workload suddenly needs the newest feature. The significance is that the runtime has become part of the application’s architecture, operating model, performance model, and deployment contract.

Continue reading “Fabric Runtime 2.0 Changes the Fabric Engineering Baseline”

OneLake Transformations Are GA—and That Makes Zero‑Unmanaged‑Copy Much More Practical

If you were already bullish on OneLake transformations in preview, the structured-file general availability milestone is easy to treat as a nice product update: useful, welcome, and mostly about convenience. I think that undersells it. What Microsoft officially calls shortcut transformations for structured files is now generally available, and the docs position it very plainly: take CSV, Parquet, or JSON files referenced through a OneLake shortcut, convert them into queryable Delta tables, keep them synchronized, and do it without hand-built ETL pipelines. That is not just easier ingestion. It is a stronger architectural bridge between raw file-based inputs and governed analytical assets inside OneLake.

What I want to do in this post is straightforward. First, I want to explain why this GA moment matters to the zero‑unmanaged‑copy model, not just to file onboarding. Second, I want to connect it to the ingest‑transform‑surface framing we have been using here. Third, I want to argue that shortcut transformations are another example—alongside Materialized Lake Views—of how multistep transform pipelines smooth the path between layers and produce something cleaner than a rigid, box-drawing version of bronze‑silver‑gold. Fabric still clearly supports medallion as a first-class pattern, but that does not mean your internal architecture has to stop at three oversized steps.

GA matters because ingest just got more product-shaped

The most important thing about shortcut transformations going GA is that ingestion becomes more like a platform primitive and less like a custom engineering tax. Microsoft’s documentation now describes shortcut transformations as managed conversion from shortcut-backed files into Delta tables with automatic schema handling, deep flattening, recursive folder discovery, frequent synchronization, and inherited governance including OneLake lineage, permissions, and Purview policies. Microsoft’s “What’s New” log also calls out the feature as generally available in April 2026. In other words, the platform now has a stable, service-managed answer for a very common problem: “I have structured files over there; I want governed Delta tables over here; and I do not want to build and babysit another pile of pipelines to make that happen.”

That is a bigger deal in financial services than it might sound at first. Wealth management teams still receive custodian position files. Lending teams still deal with servicer extracts and partner feeds. Reinsurers still work with bordereaux. Property and casualty organizations still inherit operational file drops from claims, finance, and third-party data providers. Credit card processing estates are full of settlement files, exception files, dispute files, and fee reports. Those are not edge cases. They are the day-to-day reality of how important data actually arrives. Historically, that reality has led to a familiar pattern: copy the files into a landing zone, copy them again into a parsed zone, run a notebook to shape them, land them again into a managed table, and only then begin the “real” transformation work. Shortcut transformations do not eliminate every later materialization, but they collapse a large chunk of that low-value plumbing into a governed ingest step that the platform now owns.

And notice how this changes the conversation with delivery teams. The question becomes less “what custom ingest framework are we going to build for this source?” and more “what is the cleanest input boundary we want to declare?” That is a healthier architectural question. It pushes teams to think intentionally about what they are consuming, where the source of authority lives, and what should be represented as managed Delta inside OneLake. That is already a more product-shaped starting point than “let’s dump it somewhere and figure it out later.”

Zero‑unmanaged‑copy gets stronger, not weaker

This is exactly why the feature strengthens the zero‑unmanaged‑copy model rather than contradicting it. OneLake is explicitly described by Microsoft as a single, unified logical lake with one copy of data for use with multiple analytical engines, and shortcuts are explicitly designed to eliminate edge copies and the latency introduced by staging. In your own framing, the important idea has never been “never materialize anything.” It has been “don’t proliferate unmanaged copies that escape governance, clarity, and intent.” When you do materialize, do it in a place and format the platform can govern. Shortcut transformations fit that definition almost perfectly: the upstream files remain where they are, referenced through the shortcut, while Fabric produces a managed Delta table inside the OneLake estate.

That may sound like a subtle distinction, but operationally it is not subtle at all. Consider a lender receiving monthly or daily boarding files from an external servicer. The old pattern tends to produce “temporary” copies in multiple storage locations, each with its own lifecycle, permissions, and chances to drift from the intended source. Or consider a card-processing analytics team pulling settlement and chargeback files from an external store. The common workaround is a ladder of copies and partial transforms, often implemented in a way that nobody wants to fully document because the whole thing is “just staging.” Shortcut transformations move that copy into the open. The resulting Delta table is not an accidental byproduct of bespoke ETL. It is a declared, synchronized, monitored platform asset. That is a much better expression of zero‑unmanaged‑copy than a philosophy that refuses any materialization and then quietly tolerates three layers of shadow duplication anyway.

There is also a governance payoff here that matters in regulated industries. Microsoft’s documentation explicitly notes that the transformed shortcut flow carries inherited governance signals, including lineage, permissions, and Purview policies. That is precisely what you want when the data is headed into lending risk analytics, advisor reporting, reserving support, or operational reconciliation. The copy that exists is not just “inside the platform.” It is inside the platform’s governance envelope. That is what makes it managed.

The ingest‑transform‑surface model just got sharper

This is where the ingest‑transform‑surface framing becomes especially useful. On edudatasci.net, the advanced lakehouse pattern was framed as explicit inputs through shortcuts or schema shortcuts, a small-step transformation layer implemented as a DAG, and a versioned schema-based surface exposed as the product contract. Shortcut transformations make the ingest part of that model stronger because they give file-based sources a cleaner first-class boundary. Before, the model was already strong when the input was Delta-native, mirrored, or otherwise easy to consume. Now the file-heavy edge of the estate gets a much more elegant path into the same pattern. The ingest boundary stops being “a folder our notebook happens to read” and becomes “a managed Delta representation of the files we intentionally consume.”

The supporting mechanics line up nicely too. Microsoft documents lakehouse schemas as named collections of tables, supports schema shortcuts that map external Delta folders or other lakehouse schemas into your local lakehouse, and supports four-part cross-workspace Spark SQL names. That matters because it lets you keep both the input layer and the product surface explicit. Inputs can be isolated into a clearly named schema. Outputs can be versioned into clearly named product schemas. And the path between the two can remain a deliberate internal implementation rather than an accidental tangle of notebooks and one-off scripts.

The surface side of the model is just as important. Microsoft’s Fabric lifecycle docs say that once data is in OneLake, you can transform it within Fabric without moving it between engines. From there, you can expose it through schemas, through the automatically provisioned SQL analytics endpoint, or through Direct Lake semantic models over Delta tables in OneLake. The SQL analytics endpoint gives you a read-only T-SQL surface over lakehouse Delta tables. Direct Lake is explicitly described as ideal for the gold analytics layer because it reads OneLake Delta tables directly and refreshes by copying metadata rather than replicating the full dataset. That is exactly what a surface should be: a published interface over governed assets, not yet another extraction exercise.

Think about a wealth management product for reconciled holdings and exposures. The ingest boundary might be multiple shortcut transformations over custodian and reference-data files. The transform layer might canonicalize security identifiers, standardize portfolio keys, and compute look-through exposures. The surface might be a versioned schema consumed by quants through SQL and by executives through a Direct Lake semantic model. Same OneLake foundation, explicit boundaries, and far fewer excuses to create side copies “just for reporting.” The model becomes cleaner because each step knows what it is for.

This is another multistep transform pipeline story

The real architectural lesson, though, is not just about ingest. It is about small-step composition. Microsoft’s medallion guidance now explicitly says Materialized Lake Views can be used to implement medallion architecture without building complex pipelines between bronze, silver, and gold. The MLV docs describe declarative transformations, automatic dependency management, built-in data quality rules, optimal refresh, and monitoring. They also note that an MLV can be defined from a table or from another MLV, and that lineage is processed in dependency order. That is exactly what a multistep transform pipeline is supposed to look like: not one giant transformation job, but a graph of smaller, observable steps the platform can understand and operate.

Now read that next to the shortcut transformation documentation and the pattern becomes even more explicit. The shortcut transformations doc not only describes the managed file-to-Delta ingest step; it also says, in plain language, that for further transformations—especially where you need more shaping—you should use Materialized Lake Views for the silver layer. That is a remarkably direct articulation of the chained pattern: start with shortcut transformations to get from file-shaped raw data to governed Delta, then continue with MLVs for the internal transformation graph. Sources stay explicit. Steps stay small. Lineage stays visible. Outputs become cleaner.

This is why I keep coming back to the distinction between medallion as vocabulary and medallion as rigid execution template. Bronze, silver, and gold are useful labels. They are useful teaching tools. They are often a sensible way to describe maturity and intent. But when teams turn those labels into three huge engineering buckets, they often hide too much complexity inside each one. Type normalization, deduplication, survivorship, conformance, rule application, exception handling, and regulatory quality checks get shoved into a few oversized jobs, and then everyone pretends the architecture is clean because the folders are named nicely. The actual engineering is still messy. Multistep transform pipelines smooth out the terrain between those layers by making the in-between work first-class and observable. That is the cleaner option.

Shortcut transformations are now part of that same pattern. They are not merely “how files become bronze.” They are a small transformation step at the ingest edge. MLVs are then small steps in the internal transform graph. Schemas, SQL endpoints, and Direct Lake models become the product surface. Once you see the architecture that way, the old bronze‑silver‑gold staircase starts to look less like a design and more like a loose shorthand for where things broadly sit. The real architecture is the chain of explicit steps between ingest and surface.

That matters a lot in financial services because the hardest work is often not the initial landing and not the final dashboard. It is the middle. In lending, the middle is where delinquency logic, payment reversals, and exposure calculations get reconciled. In property and casualty insurance, it is where claim events are ordered, reserves are interpreted, and policy context is attached. In reinsurance, it is where bordereaux are standardized, treaty mappings are applied, and quality exceptions are isolated. In wealth management, it is where multiple custodians’ versions of the same reality are made coherent enough to publish. Those are exactly the places where smaller, composable transform steps beat giant middle layers every time.

Why financial services teams should care now

Financial services teams should care about this GA moment because so much of the estate is still file-shaped at the edges. Not everything arrives as CDC. Not everything is mirrored. Not everything is already Delta. A large amount of economically important data still shows up as structured files in cloud storage, partner locations, or other OneLake-connected sources. Shortcut transformations being generally available means that edge is now less custom, less brittle, and more governable. The platform can take more responsibility for the boring but essential work of turning structured files into governed Delta tables that stay synchronized.

And that changes where your engineering attention can go. Instead of spending cycles on repetitive file-to-table plumbing, teams can concentrate on the parts of the pipeline that actually differentiate the data product: the business rules, the conformance logic, the quality controls, the contract design, and the surface that consumers trust. That is a much healthier allocation of effort. Your best engineers should be spending more time on exposure logic, reserve interpretation, advisor segmentation, fraud features, or liquidity reporting—not on rebuilding another ingestion ladder for CSV files.

So yes, the obvious story is that OneLake transformations are GA. But the more important story is architectural. The feature makes zero‑unmanaged‑copy more practical because it gives file-heavy estates a managed bridge into Delta. It makes ingest‑transform‑surface more complete because the ingest boundary gets sharper. And it reinforces the same lesson Materialized Lake Views have been teaching: the cleanest modern Fabric pipelines are multistep, explicit, and contract-oriented. Bronze‑silver‑gold still has value. It just works better when it describes the landscape rather than dictating three oversized jumps across it.

Closing thoughts

If you have a backlog full of nightly file copy jobs, fragile parsing notebooks, and “temporary” landing zones that somehow became permanent, this is a good moment to redraw the picture. Start with the input boundary. Let OneLake own more of the copy and synchronization work. Use small-step transformations where the business logic actually lives. And treat the surface as the product contract your consumers are meant to rely on. That is a cleaner architecture than a rigid bronze‑silver‑gold staircase—and now that structured shortcut transformations are GA, it is a much more practical one too.

Beyond the Medallion: Building Fabric Data Products with Schemas, Materialized Lake Views, and a “Surface Area” Contract

If you’ve been around modern analytics platforms for more than five minutes, you’ve probably built (or inherited) a medallion architecture: bronze → silver → gold. It’s familiar, it’s easy to draw on a whiteboard, and it’s often the first stable pattern teams reach for.

But there’s a quiet problem hiding in that simplicity: the number of sublayers tends to grow, and the complexity of each layer tends to balloon. Before long, you’re not designing a data product—you’re running an assembly line of multi-step transforms, hand-managed orchestration, and fragile dependencies.

Microsoft Fabric is starting to give us a different move: instead of treating transformation as a few “big” layers, you can treat it as a series of small, composable steps—and let the platform manage the dependency graph.

In this article, I’m going to connect three ideas:

  • Lakehouse schemas as your unit of organization (and the boundary between “internal plumbing” and “published contract”)
  • Materialized Lake Views as the declarative engine that builds (and refreshes) a dependency graph for you
  • A surface area schema designed to be shortcutted into other workspaces—so each workspace becomes an “analytical microservice” with its own interface, security boundary, and versioning story

Along the way, we’ll introduce a pragmatic versioning approach: create a new schema for major versions so breaking changes get semantic versioning “for free.”

Continue reading “Beyond the Medallion: Building Fabric Data Products with Schemas, Materialized Lake Views, and a “Surface Area” Contract”

The Ideal Microsoft Fabric CI/CD Approach: Git for Change, Deployment Pipelines for Promotion, and a Code-First Escape Hatch

Microsoft Fabric CI/CD has a reputation for being confusing—usually because people look at Git integration and Deployment Pipelines as competing ideas rather than two halves of a single delivery story.

The good news is that the “ideal” approach is not exotic. It’s a handoff:

  • Use Git integration to support real developer workflows (including branching that maps cleanly to isolated workspaces).
  • Use Deployment Pipelines to promote approved changes across environments.
  • When you need richer approvals, tests, and release controls, let traditional tooling—especially GitHub Actions or Azure DevOps Pipeline—orchestrate promotions via Fabric APIs.

In this post, I’ll lay out that end-to-end pattern step-by-step, show where the seams belong, and call out the cost you can’t ignore: workspace sprawl—and the operational discipline required to manage aged workspaces intentionally.

Continue reading “The Ideal Microsoft Fabric CI/CD Approach: Git for Change, Deployment Pipelines for Promotion, and a Code-First Escape Hatch”