Core Architecture Deep Dive
Dive deep into the architectural differences between AWS's service mesh, Snowflake's three-layer model, and Databricks' Lakehouse to see how each implements storage and compute separation.
Core Architecture Deep Dive
Bottom Line: All three platforms embrace storage/compute separation, but the implementation of that separation β and what sits in between β defines their entire character. Snowflake's Cloud Services layer, Databricks' Delta Lake + Photon stack, and AWS's disaggregated service mesh are fundamentally different solutions to the same distributed systems problems.
2.1 The Universal Starting Point: Storage/Compute Separation
Before cloud data warehouses, compute and storage were co-located on the same physical servers (think: traditional MPP appliances like Teradata or Netezza). Cloud-native platforms broke this coupling. The principle:
Traditional MPP (On-Prem): Cloud-Native (All Three):
ββββββββββββββββββββββββββββ ββββββββββββββββββββββββββββ
β Node 1: CPU + Local SSD β β Compute Layer β
β Node 2: CPU + Local SSD β β (Scales independently) β
β Node 3: CPU + Local SSD β ββββββββββββββ¬ββββββββββββββ
ββββββββββββββββββββββββββββ β High-speed network
Storage CANNOT scale without compute. ββββββββββββββΌββββββββββββββ
β Storage Layer β
β (S3 / GCS / ADLS Gen2) β
ββββββββββββββββββββββββββββ
Storage scales independently.
The critical difference between the three platforms is what happens in between.
2.2 AWS Architecture: The Service Mesh Model
AWS provides storage (S3) and then offers a menu of compute engines that query it. There is no single "AWS data platform architecture" β you compose one.
The Typical AWS Data Lake Architecture
AWS Key Architectural Entities
| Component | Role | Scaling Model |
|---|---|---|
| Amazon S3 | Universal storage layer | Infinite, automatic |
| AWS Glue Catalog | Metadata and schema registry | Managed, serverless |
| AWS Glue ETL | Serverless Spark ETL jobs | Job-level auto-scaling |
| Amazon EMR | Long-running Spark/Hive clusters | Cluster auto-scaling (EC2/EKS) |
| Amazon Redshift | MPP SQL data warehouse | Provisioned nodes OR serverless RPUs |
| Amazon Athena | Serverless ad-hoc SQL on S3 | Pay-per-query, fully automatic |
| AWS Lake Formation | Governance layer | Tag-based, across services |
β οΈ Gotcha: The Glue Catalog, Redshift, and EMR all have slightly different security models and may require explicit Lake Formation grants to interoperate. Integration is not automatic.
2.3 Snowflake Architecture: The Three-Layer Model
Snowflake's architecture is its most distinctive feature and the source of almost all of its advantages in simplicity and concurrency.
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β CLOUD SERVICES LAYER β
β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββββββββ β
β β Query β β Transaction β β Security & β β
β β Optimizer β β Manager β β Authentication β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββββββββ β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββββββββ β
β β Metadata β β Result β β Infrastructure β β
β β Manager β β Cache β β Manager β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββββββββ β
ββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββ
β (Always on, shared, no user cost)
ββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββ
β COMPUTE LAYER (Virtual Warehouses) β
β β
β ββββββββββββββββββββ ββββββββββββββββββββ β
β β VW: ANALYTICS β β VW: LOADING β β Independent β
β β (XL, Auto-susp) β β (M, always-on) β scaling per β
β ββββββββββββββββββββ ββββββββββββββββββββ workload β
β ββββββββββββββββββββ ββββββββββββββββββββ β
β β VW: ML_FEATURE β β VW: FINANCE β β
β β (Snowpark) β β (Multi-cluster) β β
β ββββββββββββββββββββ ββββββββββββββββββββ β
ββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββ
β (All VWs read from the same storage)
ββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββ
β STORAGE LAYER β
β β
β Internally managed columnar format (FDN) β
β Hosted on S3 / GCS / Azure Blob (customer-transparent) β
β ββββββββββ ββββββββββ ββββββββββ ββββββββββ β
β βMicro- β βMicro- β βMicro- β βMicro- β β
β βpartitionβ βpartitionβ βpartitionβ βpartitionβ β
β ββββββββββ ββββββββββ ββββββββββ ββββββββββ β
β (Immutable, compressed, columnar blocks β ~16MB each) β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Snowflake's Secret Weapon: Micro-Partitioning
Snowflake automatically divides data into micro-partitions of 50β500MB (uncompressed), storing them in a proprietary columnar format. Critically:
- Automatic clustering metadata is maintained, enabling partition pruning without manual index management.
- Immutability means DML operations create new micro-partitions; Time Travel accesses old ones.
- Result cache at the Cloud Services layer means identical queries re-execute for free (within 24 hours).
-- This is Snowflake's caching hierarchy:
-- 1. Result Cache (Cloud Services Layer) β instant, 24hr TTL
-- 2. Remote Disk Cache (per Virtual Warehouse local SSD) β warm queries
-- 3. Full S3 read β cold queries (still fast due to micro-partition pruning)
SELECT region, SUM(revenue)
FROM sales
WHERE sale_date BETWEEN '2024-01-01' AND '2024-03-31'
GROUP BY region;
-- Second run of this exact query: ~0ms (result cache hit)2.4 Databricks Architecture: The Lakehouse Model
Databricks' architecture is built on the conviction that Delta Lake can make object storage behave like a reliable warehouse, collapsing the traditional two-tier (lake + warehouse) architecture.
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β UNITY CATALOG (Control Plane) β
β β
β Metastore β Catalogs β Schemas β Tables/Views/Functions β
β Covers: Tables, Files, ML Models, Dashboards, Notebooks β
ββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββ
β DATABRICKS WORKSPACE (Data Plane) β
β β
β βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ β
β β SQL Warehouses β β All-Purpose β β Job Clusters β β
β β (Serverless / β β Clusters β β (Automated β β
β β Classic) β β (Interactive) β β Pipelines) β β
β ββββββββββ¬βββββββββ ββββββββββ¬βββββββββββ ββββββββββ¬βββββββββ β
β β β β β
β ββββββββββΌββββββββββββββββββββΌβββββββββββββββββββββββββΌββββββββββ
β β PHOTON ENGINE (C++ Vectorized) ββ
β β Accelerates SQL workloads on Spark clusters ββ
β ββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββ
β β β
β ββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββ
β β DELTA LAKE LAYER ββ
β β ββ
β β βββββββββββββββ βββββββββββββββ βββββββββββββββ ββ
β β β Bronze β β Silver β β Gold β ββ
β β β (Raw) β β (Cleaned) β β (Aggregatedβ ββ
β β βββββββββββββββ βββββββββββββββ βββββββββββββββ ββ
β β ββ
β β Delta Log (_delta_log/) β Transaction log (JSON) ββ
β β Parquet Data Files β Actual column data ββ
β ββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββ
β OBJECT STORAGE (Customer-Managed) β
β S3 / ADLS Gen2 / GCS β Open Parquet format β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
The Delta Log: How Lakehouse Reliability Works
The Delta Log is a transaction journal stored as JSON files alongside the Parquet data. Every write, delete, or schema change appends an entry. This is what makes Delta Lake ACID-compliant on eventually-consistent object storage:
s3://my-bucket/delta-table/
βββ _delta_log/
β βββ 00000000000000000000.json β Initial table creation
β βββ 00000000000000000001.json β First INSERT
β βββ 00000000000000000002.json β UPDATE (marks old files as removed)
β βββ 00000000000000000010.checkpoint.parquet β Checkpoint (every N commits)
β βββ _last_checkpoint β Points to latest checkpoint
βββ part-00001-abc.snappy.parquet
βββ part-00002-def.snappy.parquet
βββ part-00003-ghi.snappy.parquet β New file from UPDATE
2.5 Scaling Model Comparison
Scaling Axes
| Platform | Scale-Out (More Nodes) | Scale-Up (Bigger Nodes) | Concurrency Scaling |
|---|---|---|---|
| AWS Redshift Serverless | Automatic (RPUs) | Automatic (RPUs) | Manual via WLM config |
| AWS Redshift Provisioned | Manual node addition | Manual node type change | Manual workload groups |
| AWS EMR | Auto Scaling (EC2) | Instance type selection | Queue-based (YARN) |
| AWS Athena | Fully managed | N/A (serverless) | Per-query parallelism |
| Snowflake | Multi-cluster VW (automatic) | VW T-shirt size | β‘ Automatic, seamless |
| Databricks SQL Warehouse | Auto-scale worker nodes | Driver/worker instance type | Queue-based |
| Databricks All-Purpose | Manual or auto-scale | Instance type / DBU | Per-cluster isolation |
Snowflake's Multi-Cluster Concurrency Model
This is Snowflake's most powerful concurrency feature and is often misunderstood:
-- Standard Virtual Warehouse: 1 cluster handles all queries sequentially (or limited parallel)
-- Multi-cluster Virtual Warehouse: Snowflake SPINS UP NEW CLUSTERS automatically when queued
CREATE WAREHOUSE analytics_wh
WAREHOUSE_SIZE = 'LARGE'
MIN_CLUSTER_COUNT = 1 -- Starts with 1 cluster
MAX_CLUSTER_COUNT = 5 -- Can scale to 5 identical clusters under load
SCALING_POLICY = 'STANDARD'; -- 'ECONOMY' waits longer before scaling outThis means 500 concurrent BI users can all get sub-second responses without any manual tuning β each cluster independently serves a subset of queries. The cost: you pay for all active clusters simultaneously. π°
2.6 Query Execution Architecture
How a Query Executes: Platform Internals
AWS Redshift (Provisioned):
User Query β Leader Node (query planning) β Compute Nodes (parallel execution)
β Result Cache check β Compile to C++ machine code
β Distribute slices to nodes β Reduce to leader β Return
Snowflake:
User Query β Cloud Services (parse, plan, optimize, result cache check)
β Virtual Warehouse (local disk cache check, read from S3 if miss)
β MPP execution within VW nodes
β Result returned AND cached
Databricks (Photon):
User Query β Spark SQL parser β Catalyst Optimizer (logical + physical plan)
β Photon Engine (if SQL/DataFrame) or JVM Spark (complex UDFs)
β Distributed execution across worker nodes
β Result cache (Delta caching on worker local SSDs)
Query Optimizer Comparison
| Feature | AWS Redshift | Snowflake | Databricks |
|---|---|---|---|
| Optimizer Type | Cost-based | Cost-based + ML-assisted | Catalyst (cost-based) |
| Statistics | Manual ANALYZE or auto | Fully automatic | Automatic (with delta stats) |
| Join Reordering | Yes | Yes | Yes (Adaptive Query Execution) |
| Adaptive Execution | Limited | Yes (automatic) | β‘ Yes (Spark AQE β runtime plan changes) |
| User Hints | Limited | Yes (/*+ ... */) | Yes (Spark hints) |
| Result Caching | Yes (result cache node) | β‘ Yes (24hr, Cloud Services) | Yes (Delta cache, local SSD) |
2.7 Storage Format Deep Dive
| Attribute | AWS (S3 + Glue) | Snowflake | Databricks (Delta Lake) |
|---|---|---|---|
| Internal Format | Parquet / ORC / Iceberg | Proprietary FDN columnar | Apache Parquet |
| External Table Support | Yes (Athena, Spectrum) | Yes (S3, ADLS, GCS) | Yes (any object storage) |
| ACID Transactions | Via Iceberg / LF Governed | β Native (micro-partition immutability) | β Native (Delta Log) |
| Time Travel | Via S3 Versioning (expensive) | β 0β90 days (Fail-safe + Time Travel) | β 30 days default (configurable) |
| Schema Evolution | Manual Glue Catalog update | β Automatic with EVOLVE_SCHEMA | β MERGE schema evolution |
| Partition Strategy | Manual (Hive-style) | Automatic (micro-partitions) | Manual + OPTIMIZE + ZORDER |
| Compaction | Manual (Glue job or EMR) | Automatic (transparent) | β
OPTIMIZE command + Auto Optimize |
| Open Format | β Yes | β No (proprietary; External Tables use open formats) | β Yes (Parquet + open Delta spec) |
2.8 The Data Plane vs. Control Plane Distinction (Databricks)
Databricks has a unique security model worth understanding deeply:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β CONTROL PLANE (Databricks-managed) β
β β
β Workspace UI, Notebooks, Job Scheduler, Unity Catalog β
β APIs, Cluster Manager, MLflow Tracking Server β
β (Hosted on Databricks' cloud account) β
ββββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββ
β Encrypted channels only
ββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββ
β DATA PLANE (Customer-managed) β
β β
β Actual Spark Clusters (EC2/AKS/GCE VMs in YOUR VPC) β
β S3 / ADLS / GCS (YOUR storage accounts) β
β Delta Lake tables (YOUR data, YOUR encryption keys) β
β (Customer controls IAM, network, KMS keys) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
This separation means customer data never leaves the customer's cloud account, addressing a common enterprise security concern. Snowflake's model is different β the storage layer is managed by Snowflake on their cloud tenant (though customers can use Snowflake on their own cloud account with Snowflake on AWS PrivateLink or Bring Your Own Storage patterns).