ADR-001
Adoption of Apache Iceberg for Lakehouse Storage Format
Generated Standard Markdown File Preview
# ADR-001: Adoption of Apache Iceberg for Lakehouse Storage Format
* **Status:** Accepted
* **Date:** 2026-03-15
* **Deciders:** Principal Data Architect, Platform Engineering Team
## Context & Problem Statement
Our analytical lakehouse currently faces multiple concurrency and table maintenance challenges with Hive metastore and raw parquet partitions:
- Concurrent batch writes and streaming micro-batches occasionally cause dirty reads and partition locks.
- Schema evolution (such as renaming or dropping columns) requires costly full-table rewrites.
- Hidden partitioning is required so data consumers do not need to construct explicit partition pruning WHERE clauses.
- Multi-engine querying across Spark, Trino, Flink, and Snowflake is a strict business requirement.
## Decision Outcome
We will adopt **Apache Iceberg** as the standard table format for all Bronze, Silver, and Gold lakehouse tables on AWS S3 / Cloud Storage.
All ETL pipelines and streaming sinks (Spark Structured Streaming, Flink) will write Iceberg v2 metadata with hidden partitioning, snapshot isolation, and ACID transactions.
## Consequences
### Positive Drivers
- ✅ Full ACID transactions with serializable snapshot isolation, eliminating dirty reads.
- ✅ Safe, fast schema evolution (rename, drop, add, reorder) without data rewrites.
- ✅ Time travel queries and point-in-time rollbacks for disaster recovery.
- ✅ Vendor-neutral multi-engine interoperability across Spark, Trino, DuckDB, Snowflake, and BigQuery.
### Trade-offs & Negative Impacts
- ⚠️ Requires automated maintenance jobs (compaction, snapshot expiry, orphan file cleanup).
- ⚠️ Team must learn Iceberg catalog management (AWS Glue / Project Nessie / Polaris).
## Alternatives Considered
### Delta Lake (Open Source)
Excellent Spark support, but slightly more complex cross-engine integration with non-Databricks engines at the time of evaluation.
### Apache Hudi
Great for CDC record-level updates, but higher metadata complexity and steeper learning curve for our team.
---
*Generated by InsightfulSaga Architecture Decision Record (ADR) Studio*