---
title: "One Write Path, Multiple Entries: How Rippling uses Unity Catalog-managed Apache Iceberg™"
description: "Rippling describes an architecture in which Databricks writes some tables while Trino, Snowflake, and other lakehouse engines read them, making catalog ownership a design decision rather than a metadata detail. Its rule is that the catalog follows the writer: AWS-native workloads use Glue, Databricks workloads use Unity Catalog, and Snowflake-produced shared data uses Horizon Catalog with Snowflake-managed Iceberg tables. For selected Databricks outputs, Unity Catalog-managed Apache Iceberg stores table data and metadata in Rippling-owned S3, exposes access through the Iceberg REST Catalog API or federation, and uses credential vending for scoped storage access. This lets downstream engines read Parquet directly without duplicate materialization or producer-side query execution. Databricks also provides Predictive Optimization for maintenance, while the trade-off is continued Unity Catalog dependence for metadata, permissions, lineage, and lifecycle."
---

# One Write Path, Multiple Entries: How Rippling uses Unity Catalog-managed Apache Iceberg™

[Databricks](https://yomu.fyi/company/databricks) · Tae Lee · Aug 27, 2026

**Type:** Explainer

## Summary

Rippling describes an architecture in which Databricks writes some tables while Trino, Snowflake, and other lakehouse engines read them, making catalog ownership a design decision rather than a metadata detail. Its rule is that the catalog follows the writer: AWS-native workloads use Glue, Databricks workloads use Unity Catalog, and Snowflake-produced shared data uses Horizon Catalog with Snowflake-managed Iceberg tables. For selected Databricks outputs, Unity Catalog-managed Apache Iceberg stores table data and metadata in Rippling-owned S3, exposes access through the Iceberg REST Catalog API or federation, and uses credential vending for scoped storage access. This lets downstream engines read Parquet directly without duplicate materialization or producer-side query execution. Databricks also provides Predictive Optimization for maintenance, while the trade-off is continued Unity Catalog dependence for metadata, permissions, lineage, and lifecycle.

## Context

Rippling needs Databricks-produced tables to serve downstream systems including its Trino-based query layer, Snowflake, and other lakehouse readers without forcing every workload into one engine or creating duplicate copies. The catalog must support the writer while preserving governed, interoperable access for consumers.

## Approach / What changed

The architecture assigns catalogs according to the producing platform and uses Unity Catalog-managed Apache Iceberg for selected Databricks outputs. Databricks writes the table natively, Unity Catalog manages metadata, permissions, and lifecycle, and table data and Iceberg metadata remain in Rippling-owned S3. External engines access the table through the Iceberg REST Catalog API or federation, with credential vending for scoped storage access.

## Takeaways

- Unity Catalog-managed Iceberg tables let downstream engines such as Trino, Snowflake, Spark, Athena, and EMR read the same Parquet data directly from S3 through standard Iceberg access patterns.
- Predictive Optimization provides automatic maintenance for managed tables, including file optimization and compaction, statistics collection, and data layout optimization.
- The data remains portable as Iceberg over Parquet in Rippling-owned S3, but moving away from Unity Catalog would require replacing its metadata, permissions, lineage, and maintenance functions.

**Tags:** [Apache Iceberg](https://yomu.fyi/topic/apache-iceberg), [Unity Catalog](https://yomu.fyi/topic/unity-catalog)

- Source: [Databricks](https://www.databricks.com/blog/one-write-path-multiple-entries-how-rippling-uses-unity-catalog-managed-apache-icebergtm)
- Source URL: https://www.databricks.com/blog/one-write-path-multiple-entries-how-rippling-uses-unity-catalog-managed-apache-icebergtm
- Ingested by Yomu: 2026-09-02T08:00:55.512Z

[Read original post](https://www.databricks.com/blog/one-write-path-multiple-entries-how-rippling-uses-unity-catalog-managed-apache-icebergtm)
