Choosing Among the Patterns: Comparison & Decision Guide

Part 2: The Architecture Landscape · Architecture Patterns Deep Dive

Six named patterns in, an architect’s real risk isn’t forgetting what any single one of them is — it’s reaching for the one that’s currently fashionable instead of the one the requirements actually point to, and discovering the mismatch only after a team has spent a year building on it. Data Fabric: Metadata-Driven Integration closed out the landscape with the newest and most vendor-driven of the six; this topic closes the group by putting Lambda, Kappa, Lakehouse, Medallion, Mesh, and Fabric side by side so a choice between them is a comparison against explicit criteria, not a guess at what’s trending. None of these patterns is strictly better than another — each is a bet that a specific set of constraints (latency requirements, organizational size, team maturity, budget) will hold, and the job here is matching the bet to the constraints in front of you.

What question each pattern actually answers

Before comparing them head-to-head, it helps to be precise about what problem each one is solving, because several of them aren’t even competing for the same decision:

  • Lambda and Kappa answer how should data be processed — specifically, how to reconcile the need for both complete historical correctness and low-latency freshness.
  • Lakehouse and Medallion answer how should data be stored and curated — a storage layer and a curation-layering convention on top of it, largely orthogonal to whether processing is batch, NRT, or RT.
  • Mesh and Fabric answer who owns data and how does it get discovered/connected — organizational and integration questions that sit above both the processing and storage decisions.

That means the “choice” is rarely a single pick from all six — a real architecture typically combines one from each group: e.g., Kappa processing, feeding a lakehouse with medallion layering, organized as mesh domains, connected by a fabric. Treat the sections below as six independent axes, not six mutually exclusive options.

The decision matrix

Pattern Primary problem solved Best fit when Watch out for
Lambda Reconciling batch correctness with live freshness You need both an audited historical number and a live one, and can staff two pipelines Maintaining equivalent logic in two codebases indefinitely
Kappa Same, via one stream-only codebase Source data is fully replayable and mostly event-shaped Log retention cost/time if you must replay years of history
Lakehouse Warehouse guarantees on lake-cheap storage You’re paying to sync a separate warehouse and lake copy Still needs file-layout hygiene; picking a table format is a real lock-in decision
Medallion Making data trust level legible via layering Any lakehouse, to organize raw-to-curated flow Storage/compute triples up; latency stacks across bronze→silver→gold hops
Mesh Ownership bottleneck at a central data team Many domains, real domain expertise, funded platform team Fails without genuine self-serve tooling and governance discipline
Fabric Discovery/connection across a heterogeneous estate Multi-cloud, legacy-plus-modern, dozens of ungoverned sources Automated entity-matching errors propagate into governance mistakes

Kappa vs. Lambda, revisited

The comparison from earlier in this group is worth restating as a decision rule now that both are behind you: choose Lambda when the workload has a hard requirement for auditable historical correctness and a genuinely separate need for low-latency freshness — financial reconciliation with a live dashboard is the canonical case. Choose Kappa when the source is naturally event-shaped, fully replayable, and you’d rather absorb the log-retention cost than run two codebases. If neither condition is strongly true — if the workload doesn’t actually need sub-minute freshness — the right answer is often neither: a single well-scheduled batch pipeline into a medallion-layered lakehouse, with no speed layer at all.

Medallion vs. Lambda vs. Kappa

These three aren’t really alternatives to each other, and conflating them is a common early-career mistake. Lambda and Kappa are about processing topology — how many pipelines, and whether one of them is stream-only. Medallion is about storage layering — how curated data is organized once it lands, regardless of which processing topology produced it. In practice, a Kappa pipeline’s stream processor commonly writes directly into a lakehouse’s bronze or silver layer, and a Lambda architecture’s batch and speed layers both ultimately feed layered gold tables that BI tools query. The question “medallion or Lambda?” is a category error; the real questions are “Lambda or Kappa?” for processing and “how many layers, how strictly enforced?” for medallion.

Data Mesh vs. a centralized warehouse/lakehouse

This is a genuine either/or, and it’s an organizational decision more than a technical one. A centralized warehouse or lakehouse — one platform team owning ingestion through gold for the whole company — wins on consistency (one team, one set of conventions, no risk of forty incompatible data products) and is cheaper to run at small-to-medium scale, since there’s no self-serve platform to build. Data Mesh wins once the number of domains and the organizational size have outgrown what one team can curate with domain fluency, and only if leadership will actually fund the self-serve infrastructure and governance work mesh requires — adopted as a reorg without that investment, mesh reliably becomes the “mesh that became a mess” failure mode. The rule of thumb: default to centralized; move to mesh when the central team is provably the bottleneck, not when mesh is simply the pattern getting attention at a conference.

Data Fabric vs. Data Mesh

These are frequently confused because both promise to solve “our data is scattered and hard to use,” but they attack different halves of the problem. Mesh is about ownership: who is responsible for a dataset’s correctness and its contract with consumers. Fabric is about connection: how a consumer finds and accesses a dataset once it exists, regardless of who owns it, especially across a technically heterogeneous estate. A mesh can exist without a fabric — domain teams publish data products and consumers find them through a plain catalog and documentation. A fabric can exist without a mesh — a single centralized team’s data can still benefit from automated discovery and knowledge-graph-based integration across many source systems. The two are complementary, not competing: an organization with many domains and a technically fragmented estate often ends up running mesh for ownership and a fabric-like discovery layer to make those domains findable and connectable.

Putting the six together

At a high level, the components an architecture assembles from across all six patterns are the same regardless of which combination you pick: source systems, a processing topology (batch-only, Lambda, or Kappa), a storage layer (typically a lakehouse today), a curation convention over that storage (usually medallion), an ownership model (centralized or mesh), and, at sufficient scale, a discovery/integration layer (a catalog, or a full fabric) tying it together. Naming the choice at each layer explicitly — rather than inheriting whatever the last team happened to build — is the actual skill this group has been building toward.

There is no universally “best” pattern among these six — only a best fit for a specific combination of latency requirements, data-replayability, organizational scale, and platform investment. An architecture review that can’t name which constraint drove each choice hasn’t actually made a decision; it’s inherited a default.

Quick reference: small team, one domain, BI-only workload → centralized lakehouse with medallion layering, batch or NRT processing, no mesh, no fabric. Growing company with a live-fraud or live-personalization requirement and replayable events → add Kappa. Regulated finance needing both audited history and a live view → Lambda instead of Kappa. Large enterprise with dozens of domains and a funded platform org → mesh, with medallion layering still governing each domain’s internal bronze-to-gold flow. Sprawling multi-cloud enterprise where even finding the right dataset is the bottleneck → fabric, layered on top of whichever ownership model (centralized or mesh) the organization has already chosen. The pattern names are a vocabulary for defending these choices in a design review, not a checklist to implement all at once.


| ← Previous: Data Fabric: Metadata-Driven Integration | Next: The Architect’s Decision Framework → | |:—|—:|


Back to top

Independent, self-authored data architecture field notes.

This site uses Just the Docs, a documentation theme for Jekyll.