Make authority, serving, and movement boundaries explicit before migration.

Design a Hybrid Lakehouse+Warehouse Architecture with Clear System of Record, Serving, and Data-Movement Boundaries

Build a hybrid analytical architecture whose storage, transaction, semantic, and serving responsibilities remain independently testable.

Intermediate → Advanced145–180 minutesHybrid design + acceptance labSoR + serving + data movement boundariesLast reviewed: September 2026

Learning outcomes

01

Design a hybrid AtlasMart architecture with explicit operational system of record, replay source, analytical integration state, warehouse serving state, and semantic ownership.

02

Document every data movement/federation boundary, copy, freshness contract, security path, lineage edge, and rollback path.

03

Use open-table storage where interoperability/replay benefits justify it and dimensional serving where governed BI behavior justifies it.

04

Prevent duplicate semantic ownership when the same data appears in lakehouse, warehouse, marts, and BI tools.

05

Create an acceptance checklist that remains valid if the physical engine or table format changes.

Continuity: architecture can move data, not redefine AtlasMart

Chapter 28 begins from the accepted state through Chapter 27: 10 current paid lines, 8 orders, 12 units, 820 USD gross revenue, 495 USD cost, and 325 USD gross profit, with source progress through sequence 208. The declared sales grain remains one paid order line. The ERP remains the operational system of record for order state; bronze stores received replay evidence; silver holds validated analytical atomic state; the dimensional warehouse serves governed BI; and the semantic layer still owns metric meaning. A lakehouse or open table format changes storage/transaction/interop mechanisms, not those business contracts.

Executed local harness

Mandatory work is local, free, synthetic, and executed with Python. It writes JSONL object-store fixtures plus synthetic metadata examples explicitly labeled not real Iceberg/Delta/Hudi tables. All copies reconcile to 820 / 495 / 325 USD. The federation/materialization comparison is an explicit calculation: 120 dashboard queries/day × 320 MiB remote scan = 37.5 GiB/day federated remote reads; hourly materialization moves 28.8 GiB/day and scans 4.688 GiB/day locally. Modeled latency is 2,500 ms vs 180 ms and freshness is 2 minutes vs at most 60 minutes. These are teaching assumptions, not cloud measurements.

1. Problem frame

AtlasMart now needs a final architecture decision. Data science wants open object-store tables, finance wants predictable dimensional queries, and operations wants near-current incident investigation. The design must say which system is authoritative for which state, when data is copied or federated, how semantic definitions propagate, and how to roll back if a format/engine migration fails.

A good hybrid architecture has explicit authority boundaries; it is not “use every platform at once.”

2. Hybrid target architecture

text
ERP / CRM / WMS operational systems   |  CDC/batch with source identity + contracts   vBRONZE object storage  -- replay evidence / received source history   |  validate, dedupe, delete/correction handling, schema contract   vSILVER open-table atomic integration  -- one accepted paid order line   |\   | \---- federated audit / DS reads (snapshot/version rules)   |   +---- publish/reconcile ----> DIMENSIONAL WAREHOUSE SERVING                                  fact_sales + conformed dimensions                                  aggregates/materializations                                           |                                           v                                  SEMANTIC CONTRACTS / CERTIFIED MARTS                                           |                                           v                                  BI / finance / operations consumers

System-of-record does not mean “the place analysts query most.” ERP owns operational order state. Bronze owns the received-event audit/replay record. Silver owns the validated analytical atomic interpretation at source sequence 208. The dimensional warehouse owns the certified serving representation. The semantic layer owns metric definition/version/filter/time semantics. Each authority is scoped.

3. Copy and ownership inventory

Surface Role Authoritative for Derived? Primary consumers
ERP Operational SoR Order state No Operations/apps
Bronze Replay evidence Received source events Yes Data engineering/audit
Silver Validated integration Accepted atomic analytical state Yes Engineering/DS/federated audit
Warehouse Dimensional serving Certified query state Yes BI/marts
Semantic Metric contract Metric meaning Yes All analytical consumers

4. Movement contracts

Every movement edge needs an identity, freshness target, idempotency rule, schema contract, quality gate, lineage record, security principal, and replay/rollback procedure. A copy is acceptable when it has a purpose. Uncontrolled copies—CSV exports, personal extracts, duplicate marts—are dangerous because they have no invalidation or privacy-deletion propagation path.

yaml
movement_contract:  from: silver.sales_line_atomic  to: warehouse.fact_sales  grain: one paid order line  watermark: source_sequence 208  metric_controls: {revenue_usd: 820, cost_usd: 495, gross_profit_usd: 325}  publish: only after reconciliation + history/key tests  idempotency: replace/merge one logical grain deterministically  rollback: previous certified warehouse version  security: service identity writes; BI roles cannot read bronze/silver raw PII

5. Controlled failure: two “gold” systems both own revenue

Wrong approach: lakehouse gold computes net_sales with one filter while the warehouse semantic layer computes gross_revenue_usd.v1. Both are labeled “Revenue.” Dashboards disagree and lineage cannot identify which definition is certified.

Repair: assign semantic ownership once. If lakehouse gold materializes a revenue aggregate, it references the same versioned metric contract and is certified only after reconciliation. A storage engine may execute the formula in multiple places, but the definition, tests, owner, and version remain one governed contract.

6. Acceptance test: physical architecture can change while controls do not

python
expected = (10, 8, 12, 820, 495, 325)bronze_to_silver = (10, 8, 12, 820, 495, 325)warehouse_serving = (10, 8, 12, 820, 495, 325)assert bronze_to_silver == expectedassert warehouse_serving == expected# A storage/table-format migration is incomplete until:# - old/new query results reconcile,# - lineage/security/freshness remain valid,# - reader/writer compatibility is tested,# - rollback is rehearsed.

7. Architecture decision matrix

Workload Chosen path Why Primary risk
Finance dashboard Warehouse materialized serving Repeated, strict latency, governed hourly certification Staleness / duplicate copy
Audit source trace Federated silver snapshot Low frequency, need latest accepted atomic history Remote dependency / consistency
Data science feature exploration Silver/open table Open engine access and atomic detail Cost / uncontrolled derived copies
Executive metric Semantic contract over certified serving One definition across tools Bypass/dashboard-local logic

8. Production judgment and bridge to migration

A hybrid is justified when it gives materially different workloads appropriate access without splitting ownership of data meaning. Keep the architecture boringly explicit: who owns source truth, what is replayable, what is certified, which snapshot/version a federated query reads, where data is copied, how long copies may be stale, which credentials can bypass semantic controls, and which tests prove reconciliation. Chapter 29 will use these same contracts to modernize legacy warehouses without preserving technical debt or breaking metric behavior.

Knowledge check

Checkpoint

Can both silver and the warehouse be “authoritative”?

Show answer

Yes, but only for different scoped responsibilities. Silver can be authoritative for accepted analytical atomic state while the warehouse is authoritative for the certified BI-serving representation. The scope must be explicit.

Checkpoint

What should happen when a serving copy fails reconciliation?

Show answer

Do not certify/publish it. Preserve the prior certified version, diagnose the smallest cause, replay idempotently, and communicate consumer impact.

Checkpoint

What makes a copy governed rather than accidental?

Show answer

A declared purpose, owner, lineage, freshness/retention/security contracts, reconciliation tests, invalidation/deletion propagation, and rollback/cleanup path.

Checkpoint

Why does Chapter 29 care about this boundary map?

Show answer

Migration must preserve meaning and operational contracts, not just rows. The boundary map identifies which behaviors and authority relationships must survive platform changes.

Authoritative references

9. Lab cleanup/reset

Delete atlasmart_ch28_lab/ to remove the synthetic bronze/silver/warehouse/metadata/report files. The lab creates no cloud resources and stores no credentials.

Keep knowledge open

Help the academy stay free and grow.

If these tutorials save you time, a small donation supports new lessons, technical review, diagrams, examples, and long-term maintenance.

ETHEthereum / ERC-20 only
0x716c4Ab160C4B66F31a28AE2448BfF68fc3a2ef0

Send only Ethereum or ERC-20 compatible assets to this address.