End-to-End Data Platform Demo
The tower-demo repository showcases a complete data platform for Orbita Supply Co., a fictional retail company. This comprehensive example demonstrates how Tower orchestrates a modern data lakehouse architecture with ingestion, transformation, analytics, and AI automation.
Overview
The demo includes 20+ Tower apps organized into five categories:
| Category | Apps | Description |
|---|---|---|
| Ingestion | 5 | Extract data from Shopify, IoT sensors, and operational systems |
| Transformation | 4 | Build analytics-ready tables with dbt and Tower |
| Analytics | 4 | Interactive Marimo notebook dashboards |
| Orchestration | 2 | Multi-app pipelines for daily ETL and anomaly detection |
| Utilities | 1 | Demo data regeneration |
Data Architecture
The platform follows a medallion lakehouse architecture:
┌─────────────────────────────────────────┐
│ GOLD LAYER │
│ Business-ready aggregates & KPIs │
│ • customer_360 │
│ • product_performance │
│ • inventory_ledger │
└──── ─────────────────────────────────────┘
▲
┌─────────────────────────────────────────┐
│ SILVER LAYER │
│ Cleaned, conformed, enriched data │
│ • ticket_summaries │
│ • product_descriptions │
│ • anomaly_explanations │
└─────────────────────────────────────────┘
▲
┌─────────────────────────────────────────┐
│ BRONZE LAYER │
│ Raw ingested data from sources │
│ • orders, inventory, products │
│ • warehouse_telemetry, returns │
└─────────────────────────────────────────┘
Key Workflows
Daily Retail Pipeline
The daily_retail_pipeline app orchestrates a complete daily ETL:
- Ingest orders, products, and returns
- Build
customer_360andproduct_performancetables - Generate AI-powered sales report
- Send Slack notification
tower run daily_retail_pipeline
Real-Time Anomaly Detection
The warehouse_anomaly_pipeline demonstrates operational intelligence:
- Ingest latest warehouse telemetry
- Detect anomalies in sensor data
- Generate AI explanations
- Alert on critical issues
tower run warehouse_anomaly_pipeline
Technologies Used
- Tower: App orchestration, scheduling, secrets, and catalog management
- Apache Iceberg: Open table format for the data lakehouse
- dltHub: Python-first data ingestion
- dbt: SQL-based transformations
- Marimo: Reactive Python notebooks for dashboards
- Claude: LLM for AI automation and insights
- Polars & PyArrow: Columnar data processing
Getting Started
Clone the repository and run any app locally:
git clone https://github.com/tower/tower-demo
cd tower-demo/ingest_shopify_orders
# Install dependencies
uv sync
# Run locally
tower run --local
Deploy all apps to Tower:
# From the repo root
for app in ingest_* run_* customer_* product_*; do
cd $app && tower deploy && cd ..
done
Highlights: Medallion architecture, dltHub, dbt, Marimo notebooks, LLM automation, Slack notifications