How we built Cloudflare's data platform and an AI agent on top of it

This post details the creation of Cloudflare's unified data analytics platform, Town Lake, and an AI data agent, Skipper. Town Lake unifies disparate data sources (Postgres, ClickHouse, R2, Kafka, BigQuery) into a single SQL interface using Apache Trino as the query engine, R2 Data Catalog (Apache Iceberg) for storage, and DataHub for metadata. It implements a 'default-closed' governance model with automated PII scanning (Skimmer) and access control (Lifeguard). Transformer, built on Workflows, handles ELT. Skipper, built on Workers AI and Durable Objects, provides a natural language interface to Town Lake, capable of generating SQL, performing closed-loop reasoning, and creating dashboards. The platform is built entirely on Cloudflare's own products (R2, Workers, Access, Workflows).
More from the Data Infrastructure & Analytics trail
- Introducing Cloudflare Basin: an open, serverless data platform, now generally available
- Introducing the Billable Usage API: programmatic cost visibility for Cloudflare
- Announcing the Monetization Gateway: charge for any resource behind Cloudflare via x402
- Iran's Internet is partially restored, Cloudflare Radar data shows
- Our billing pipeline was suddenly slow. The culprit was a hidden bottleneck in ClickHouse