BlogData Architecture

Enterprise Data Platform Architecture: Designing for Scale, Governance, and Agility

Austin Duncan
Austin Duncan
Managing Director & Principal Data Architect
·June 26, 202613 min read

Enterprise data platforms fail when they are designed for today's requirements without accounting for scale, governance, and organisational change. Here is the architecture framework that survives first contact with reality.

The quick answer

An enterprise data platform is the combination of infrastructure, tooling, and governance that makes data usable across an organisation. Most enterprise data platforms fail in the same ways: they are designed for current requirements without accounting for scale, they optimise for technical elegance at the expense of organisational adoption, or they centralise governance so aggressively that the platform becomes a bottleneck. This guide covers the architectural principles and design patterns that produce platforms organisations can actually use — and that survive first contact with reality.

What an enterprise data platform actually includes

A complete enterprise data platform has six layers:

**Ingestion layer**: the mechanisms that bring data from source systems into the platform. Batch ELT for structured operational data (Fivetran, Airbyte, custom pipelines). Change data capture for near-real-time database replication (Debezium via Kafka). Event streaming for high-volume operational events (Kafka, Kinesis). File-based ingestion for partner data, flat files, and third-party feeds.

**Storage layer**: where data lives. Cloud object storage (S3, ADLS, GCS) for raw and semi-structured data. Cloud data warehouse (Snowflake, BigQuery, Redshift) for structured analytical data. Optionally, an open table format (Delta Lake, Iceberg) for a lakehouse pattern that unifies object storage with warehouse-like SQL capabilities.

**Transformation layer**: how raw data becomes analysis-ready data. dbt for SQL-based transformation (the dominant pattern). Spark for heavy data processing, ML feature engineering, and large-scale joins. Python notebooks (Databricks, Jupyter) for exploratory and ad-hoc transformation. The transformation layer implements the data models that define how the business's data is structured.

**Orchestration layer**: what runs the pipelines, in what order, on what schedule. Airflow, Prefect, or Dagster for workflow orchestration. dbt Cloud for transformation-only orchestration. The orchestrator manages dependencies, retries, alerting, and scheduling across the full pipeline graph.

**Serving layer**: how data gets to consumers. BI tools (Tableau, Power BI, Looker) for dashboard and report consumers. SQL-based access for analysts. APIs or reverse ETL for operational tool consumers. Embedded analytics for external-facing applications. ML model serving for operational AI use cases.

**Governance layer**: the controls that make the platform trustworthy. Data catalog for discovery. Data quality framework for fitness assurance. Access control for security. Data lineage for impact analysis and audit. Data contracts between producers and consumers.

Architecture principles for enterprise scale

### Separate concerns

Each layer should have a defined, bounded responsibility and a clean interface to adjacent layers. The ingestion layer delivers raw data; the transformation layer transforms it; the serving layer queries the results. When layers bleed into each other — transformation logic in the ingestion layer, raw data directly queried by BI tools — the platform becomes fragile and hard to maintain.

The most common violation: BI tools connecting directly to production operational databases, bypassing the warehouse and transformation layers entirely. This produces dashboards that are correct until the production database schema changes, and imposes analytical query load on operational infrastructure not sized for it.

### Design for operational change

Source systems change. APIs are versioned. Database schemas evolve. Teams reorganise. The enterprise data platform must absorb these changes without cascading failures.

The staging layer in dbt is the mechanism for this at the transformation layer — one model per source table, handling renaming and type casting. When a source column changes, one file changes; everything downstream is protected. At the ingestion layer, schema evolution handling in Fivetran or Airbyte (the connector automatically adapts to added columns without breaking) protects against source system changes.

### Treat governance as infrastructure, not process

Governance that depends on human review at every step does not scale. When every new data source requires a governance committee review, or every permission change requires a ticket to a central team, the platform becomes a bottleneck that domain teams route around.

Effective enterprise governance is automated: automated PII classification (scanning new tables for sensitive columns and tagging them), automated access provisioning (self-service access requests that automatically approve based on data classification and requester role), automated quality monitoring (anomaly detection that alerts before users discover problems). The governance layer should be mostly invisible — policies enforced without friction, not via manual checkpoints.

### Separate raw from derived

Raw data (exactly as received from source systems) should be preserved separately from derived data (the output of transformation pipelines). When a pipeline bug produces incorrect output, you need to be able to replay the transformation from raw data without re-extracting from source systems. When an upstream source changes a historical record, you need to understand whether your warehouse reflects the current or previous state.

Raw data lives in a dedicated landing schema or layer (Bronze in a medallion architecture, a raw schema in a warehouse-only approach). Transformation pipelines read from raw; no downstream consumer reads raw directly. This separation provides an audit trail and a recovery point for any transformation failure.

### Build for the analyst, not the engineer

Data platform success is measured by whether the analysts and business users who need data can find it, trust it, and use it — not by the elegance of the pipeline architecture. Platform investment that does not improve analyst experience delivers limited business value.

Practical implications: invest in data documentation (dbt model descriptions, data catalog entries, Slack channel for data questions) proportionally to investment in pipeline infrastructure. Deploy data quality tests before or alongside the models they test. Establish a clear escalation path for data questions (who to contact when a number looks wrong). Track analyst adoption and NPS as platform success metrics alongside pipeline reliability.

Common architectural failures

**The swamp**: a data lake that accumulates raw data with no transformation layer and no governance. Data lands in S3 and never becomes analysis-ready. Analysts extract raw files and build their own models in spreadsheets or personal Python notebooks. The platform exists but is not used. Root cause: investment in ingestion without investment in transformation and governance.

**The bottleneck platform**: a centralised data team that controls all pipeline development and all data model changes. Every new data requirement requires a ticket to the central team. Backlog grows. Teams wait weeks for simple additions. Domain teams build shadow analytics outside the platform. Root cause: over-centralisation without self-service mechanisms for domain teams.

**The unmaintained semantic layer**: a meticulously built semantic layer (LookML, dbt metrics, a BI tool data model) that falls out of sync with the underlying data model and business reality because there is no owner responsible for keeping it current. Analysts find that metrics in the semantic layer are wrong and abandon it. Root cause: governance ownership not assigned; no periodic review cadence.

**The over-engineered MVP**: a data platform designed for 100x current scale with microservices, event-driven architecture, and a complex orchestration graph — for a 50-person company with 3 data sources and no data engineers to operate it. Root cause: architecture optimised for theoretical future requirements rather than current needs.

Reference architecture patterns

**Warehouse-centric (most common at mid-market)**: Fivetran/Airbyte → Snowflake/BigQuery (raw schema) → dbt (staging + intermediate + mart) → Tableau/Power BI/Looker. Orchestrated by dbt Cloud or Airflow. Governed via dbt docs + data catalog. Best for: organisations with structured operational data sources and SQL-first analytics teams.

**Lakehouse (common at data-platform-mature orgs)**: Fivetran/Kafka → S3/ADLS (Bronze Delta Lake) → Databricks/Spark (Silver transformation) → Gold Delta/Iceberg tables → Snowflake (for BI SQL) + Databricks SQL (for engineering/ML). Best for: organisations with diverse data types (semi-structured, high-volume events, ML features) needing multi-engine access.

**Event-driven (streaming-critical orgs)**: Kafka (operational events + CDC) → ksqlDB/Flink (stream processing) → Snowflake Snowpipe (warehouse loading) → dbt + BI. Best for: fintech, logistics, and e-commerce organisations where operational systems depend on real-time data signals.

For the specific platform components, see data architecture patterns, data lakehouse vs data warehouse, and modern data stack. For the governance layer, see data governance framework and data catalog tools.

Our data architecture consulting practice designs enterprise data platforms from the ground up and audits and improves existing ones. If your organisation's data platform is a bottleneck, is delivering inconsistent data, or is struggling to scale, book a free 30-minute audit to discuss your environment.

Get your data architecture audit in 30 minutes.

A former Microsoft data architect audits your data foundation, identifies your top priorities, and sends you a written plan. Free. No pitch.

Book a Call →