# Cloudflare Basin Basin is [[Cloudflare]]'s serverless analytics platform: you ingest events, store them as Apache Iceberg tables in [[Cloudflare R2]], and query them with SQL, without running a single cluster. It went GA on October 1, 2026, during Birthday Week. Until then it was called the Cloudflare Data Platform, announced a year earlier (Birthday Week 2025). Basin is a family name, not a new engine. Three existing products got renamed under it: - **Basin Pipelines** (formerly [[Cloudflare Pipelines]]): ingestion. Events come in through HTTP endpoints, Worker bindings or Cloudflare Logpush, get filtered and reshaped with SQL, and land as Iceberg tables, Parquet or JSON files in R2 - **Basin Catalog** (formerly R2 Data Catalog): a managed Iceberg REST catalog that lives inside an R2 bucket. It handles the boring maintenance for you: compaction, snapshot expiration, cleanup of unreferenced data files, manifest optimization - **Basin SQL** (formerly R2 SQL): a serverless, distributed, read-only query engine for the tables in Basin Catalog. The query gets split into smaller tasks that run across Workers on Cloudflare's network Existing Pipelines, R2 Data Catalog and R2 SQL resources keep working under the new names; Cloudflare says the old ones "will be deprecated over time". The CLI moved too: `wrangler basin pipelines setup`, `wrangler basin catalog enable <bucket>`, `wrangler basin sql query <warehouse> "<SQL>"`. ## Why it matters The pitch rests on two things: Iceberg and zero egress. Iceberg is the open table format that nearly every query engine now reads. Because your tables live in R2, which charges no egress fees, you can point [[DuckDB]], Spark, Snowflake, Trino or PyIceberg at the same tables from any cloud without paying to get your own data out. Storage and compute stay separate, and you pick the engine. That's the opposite of the classic warehouse lock-in. For a small team or a side project, the other half matters more: you get an end-to-end pipeline (ingest, transform, store, query) for a few cents, with no Kafka, no Flink job, no Spark maintenance job and no warehouse to keep warm. The example in the docs (500 GB in, 300 GB delivered, 50 GB scanned) costs $33.15 a month before R2 storage, and almost all of that is Pipelines. ## Pricing Usage-based, no hourly charges. Monthly included usage, then: - **Pipelines**: ingress free and unlimited; SQL transforms $0.04/GB after 50 GB; sinks $0.03/GB (JSON) or $0.06/GB (Parquet/Iceberg) after a shared 50 GB, measured on uncompressed data - **Catalog**: $9 per million catalog operations after 1 million; compaction $0.005/GB after 10 GB, plus $2 per million objects after 1 million. Snapshot expiration is free - **SQL**: $0.0025/GB of compressed data scanned ($2.50/TB) after 10 GB, with a 10 MB minimum per query. Failed queries and metadata-only commands (`EXPLAIN`, `SHOW`, `DESCRIBE`) cost nothing R2 storage and operations come on top. Billing for all three started on August 3, 2026, before the rename. ## Limits and gaps - Pipelines: 20 streams, 20 sinks and 20 pipelines per account, 5 MB per ingestion request, 1 GB/s per stream (up from 5 MB/s at GA). The launch blog post says 3 GB/s; the docs and changelog say 1 GB/s - Basin SQL is read-only: no `INSERT`/`UPDATE`/`DELETE`, no DDL, no `OFFSET`, no `UNNEST`/`PIVOT`, no named `WINDOW` clause. Joins, CTEs, window functions, `QUALIFY`, grouping sets and 190+ functions are supported - Pipelines can't yet do custom partitioning, schema migrations, stateful processing (streaming aggregations, joins) or Iceberg V3. All of those are on the roadmap, along with DDL in Basin SQL and jurisdiction support in the Catalog ## How it fits with the rest - [[Cloudflare Queues]] is for "process each message once"; Basin Pipelines is for "ingest millions of events and make them queryable" - [[Cloudflare D1]] is transactional SQLite; Basin is analytics (OLAP) over large, append-mostly datasets - It's all set up through [[Wrangler]], the dashboard (which has a built-in SQL editor), the API or Terraform ([[Infrastructure as Code (IaC)]] for catalog, stream, sink and the SQL that ties them) ## My take The rename is mostly marketing, and that's fine. "R2 SQL" and "R2 Data Catalog" made the analytics stack look like a couple of R2 features; Basin makes it read as one product with a clear story. What actually matters is that it's GA, priced, and built on Iceberg, so trying it costs little and leaving costs nothing. Expect some friction from the half-finished rename though: old names in tutorials, `wrangler pipelines` vs `wrangler basin pipelines`, and figures that don't match between the blog and the docs. ## References - [Introducing Cloudflare Basin: an open, serverless data platform, now generally available](https://blog.cloudflare.com/cloudflare-basin/) (Cloudflare blog, 2026-10-01) - [Announcing the Cloudflare Data Platform](https://blog.cloudflare.com/cloudflare-data-platform/) (Cloudflare blog, 2025-09-25) - Basin documentation: https://developers.cloudflare.com/basin/ - Basin pricing: https://developers.cloudflare.com/basin/platform/pricing/ - Basin Pipelines limits: https://developers.cloudflare.com/basin-pipelines/platform/limits/ - Basin SQL limitations: https://developers.cloudflare.com/basin-sql/reference/limitations-best-practices/ - Basin Catalog: https://developers.cloudflare.com/basin-catalog/ - Changelog, Cloudflare Basin GA (2026-10-01): https://developers.cloudflare.com/changelog/post/2026-10-01-basin-ga/ - Changelog, 1 GB/s per stream (2026-10-01): https://developers.cloudflare.com/changelog/post/2026-10-01-stream-ingest-limit-increase/ - Hacker News, Cloudflare Data Platform (2025): https://news.ycombinator.com/item?id=45381584 - Apache Iceberg: https://iceberg.apache.org/ ## Related - [[Cloudflare]] - [[Cloudflare Pipelines]] - [[Cloudflare R2]] - [[Cloudflare Queues]] - [[Cloudflare D1]] - [[Cloudflare Workers]] - [[DuckDB]] - [[SQL]] - [[Wrangler]]